数据库mysql审计,sql server 数据库审计

本文目录一览:

什么是数据库审计?

随着信息泄露事件的频发,数据库安全产品逐渐进入大众视野。在数据库安全产品中,数据库审计大概是用户方最为熟悉的一款产品了。在不影响业务系统正常运转的情况下,数据库审计产品能够对数据库的操作访问行为进行追踪审计,这也是大多数用户将其作为数据库安全标配采购的重要原因。本文时代新威为您科普什么是数据库审计,数据库审计的作用和原理有哪些,一起来看看吧!

什么是数据库审计?

数据库审计是指对审计日志和事务日志进行审查,从而跟踪数据和数据库结构的变化。数据库可以这样进行设置:捕捉数据和元数据的改变,以及存储这些资料的数据库所做的修改。典型的审计报告应该包括以下内容:完成的数据库操作、改变的数据值、执行该项操作的人,以及其他几项属性。这些审计功能被植入到所有的关系数据库平台中,并确保生成的记录文件具有较高的准确性和完整性,就好像在数据库中存储的数据一样。此外,审计跟踪还能把一系列的语句转化为合理的事务,并提供业务流程取证(forensic)分析所需的业务环境。

不过,审计功能也存在限制,例如不能对数据访问语句(通常称之为SELECT语句)进行审计。另外,本地数据库审计很难捕捉到用户认可的原始查询(query)和变量(variables),只能从综合的角度对事件做出记录,而日志则可以捕捉到改变前后的数据值。这也使得审计跟踪在检测已改变的内容时,比检测已访问的内容更为有效。

对数据库活动和状态进行取证检查时,审计可以准确的把握事件的本质。对SELECT语句(用户查看数据时会使用)进行检查时,因为本地平台缺乏对这些语句的收集能力,即便利用高级选项实现了这项操作,也会导致性能受到极大损失。既然有简单的方法可以高效地对SELECT语句进行登记(cataloging)(例如,登入失败、尝试查看信用证信息),为什么企业还要选择在本地数据库审计功能上增加其他的数据收集资源。不管怎样,内置的数据库审计功能可以生成事务认证和法规控制的核心信息。

数据库审计作用:

数据库审计通过旁路部署,能够实时记录网络上的数据库活动,对数据库操作进行细粒度审计的合规性管理,对数据库遭受到的风险行为进行告警。它通过对用户访问数据库行为的记录、分析和汇报,用来帮助用户事后生成合规搜索报告、事后追根溯源,同时加强内外部数据库网络行为记录,提高数据资产安全。

数据库审计原理:

数据库审计系统对来自应用系统客户端和dba对数据库的访问行为进行全面审计,不仅审计sql语句,还对ftp、telnet等远程访问进行审计。系统详细记录查询、删除、增加、修改等行为及操作结果,对危险操作还可实时预警,及时阻止,从而达到保护数据库的良好效果。

黑格尔曾说,“存在即合理”,用在数据安全领域,对数据库审计的运用同样适用。时代新威认为数据库审计是当下最经济、最贴身、最有效的数据保镖,同时我国信息化建设想要长远持续发展,数据库审计是必然选择。

mysql数据库审计功能 是否可以跟踪查询

mysql服务器自身没有提供审计功能,但是我们可以使用init-connect + binlog的方法进行mysql的操作审计。由于mysql binlog记录了所有对数据库长生实际修改的sql语句,及其执行时间,和connection_id但是却没有记录connection_id对应的详细用户信息。在后期审计进行行为追踪时,根据binlog记录的行为及对应的connection-id 结合 之前连接日志记录 进行分析,得出最后的结论。

1. 设置init-connect

1.1 创建用于存放连接日志的数据库和表

create database accesslog;

CREATE TABLE accesslog.accesslog (`id` int(11) primary key auto_increment, `time` timestamp, `localname` varchar(30), `matchname` varchar(30))

1.2 创建用户权限

可用现成的root用户用于信息的读取

grant select on accesslog.* to root;

如果存在具有to *.* 权限的用户需要进行限制。

这里还需要注意用户必须对accesslog表具有insert权限

grant select on accesslog.* to user@’%’;

1.3 设置init-connect

在[mysqld]下添加以下设置:

init-connect=’insertinto accesslog.accesslog(id, time, localname, matchname)

values(connection_id(),now(),user(),current_user());’

——注意user()和current_user()的区别

log-bin=xxx

这里必须开启binlog

1.4 重启数据库生效

shell /etc/init.d/mysql restart

2. 记录追踪

2.1 thread_id确认

可以用以下语句定位语句执行人

Tencent:~ # mysqlbinlog –start-datetime=’2011-01-26 16:00:00′

–stop-datetime=’2011-01-26 17:00:00′ /var/lib/mysql/mysql-bin.000010

| grep -B 5 ‘wsj’

COMMIT/*!*/;

# at 767

#110126 16:16:43 server id 1 end_log_pos 872 Query thread_id=19 exec_time=0 error_code=0

use test/*!*/;

SET TIMESTAMP=1296029803/*!*/;

create table wsj(id int unsigned not null)

BEGIN

/*!*/;

# at 940

#110126 16:16:57 server id 1 end_log_pos 1033 Query thread_id=19 exec_time=0 error_code=0

SET TIMESTAMP=1296029817/*!*/;

insert into wsj(id) values (1)

BEGIN

/*!*/;

# at 1128

#110126 16:16:58 server id 1 end_log_pos 1221 Query thread_id=19 exec_time=0 error_code=0

SET TIMESTAMP=1296029818/*!*/;

insert into wsj(id) values (2)

2.2 用户确认

thread_id 确认以后,找到元凶就只是一条sql语句的问题了。

mysql select * from accesslog where id=19;

+—-+———————+———————+———–+

| id | time | localname | matchname |

+—-+———————+———————+———–+

| 19 | 2011-01-26 16:15:54 | test@10.163.164.216 | test@% |

+—-+———————+———————+———–+

1 row in set (0.00 sec)

数据库审计 支持审计数据库包括哪些

安华金和数据库审计产品支持市面上30多种数据库类型,关系型数据库类型包含Oracle、MySQL、SQLServer、DB2、Postgres、Sybase、DM、Gbase8A、Kingbase、Informix、Oscar神通、CacheDB、Gbase8T、MariaDB、Percona、Greenplum、Teradata、Hana、SG-RDB_MySQL、SG-RDB_PostgreSQL

等等,非关系型数据库包含HBase、MongoDB、Hive、Impala、Sentry、Redis、HDFS、ElasticSearch、Spark SQL等等,去年做交流的时候聊过,还特意留了一张支持数据库的表格,现在是不是又有新的数据库也可以支持,你跟安华了解下,他们是业界支持数据库类型最多的一家厂商。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/160532.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-11-21 01:14
下一篇 2024-11-21 01:14

相关推荐

  • 如何修改mysql的端口号

    本文将介绍如何修改mysql的端口号,方便开发者根据实际需求配置对应端口号。 一、为什么需要修改mysql端口号 默认情况下,mysql使用的端口号是3306。在某些情况下,我们需…

    编程 2025-04-29
  • Python 常用数据库有哪些?

    在Python编程中,数据库是不可或缺的一部分。随着互联网应用的不断扩大,处理海量数据已成为一种趋势。Python有许多成熟的数据库管理系统,接下来我们将从多个方面介绍Python…

    编程 2025-04-29
  • openeuler安装数据库方案

    本文将介绍在openeuler操作系统中安装数据库的方案,并提供代码示例。 一、安装MariaDB 下面介绍如何在openeuler中安装MariaDB。 1、更新软件源 sudo…

    编程 2025-04-29
  • Hibernate日志打印sql参数

    本文将从多个方面介绍如何在Hibernate中打印SQL参数。Hibernate作为一种ORM框架,可以通过打印SQL参数方便开发者调试和优化Hibernate应用。 一、通过配置…

    编程 2025-04-29
  • Python操作MySQL

    本文将从以下几个方面对Python操作MySQL进行详细阐述: 一、连接MySQL数据库 在使用Python操作MySQL之前,我们需要先连接MySQL数据库。在Python中,我…

    编程 2025-04-29
  • 使用SQL实现select 聚合查询结果前加序号

    select语句是数据库中最基础的命令之一,用于从一个或多个表中检索数据。常见的聚合函数有:count、sum、avg等。有时候我们需要在查询结果的前面加上序号,可以使用以下两种方…

    编程 2025-04-29
  • 理解Mybatis中的SQL Limit用法

    Mybatis是一种非常流行的ORM框架,提供了SQL映射配置文件,可以使用类似于传统SQL语言的方式编写SQL语句。其中,SQL的Limit语法是一个非常重要的知识点,能够实现分…

    编程 2025-04-29
  • 数据库第三范式会有删除插入异常

    如果没有正确设计数据库,第三范式可能导致删除和插入异常。以下是详细解释: 一、什么是第三范式和范式理论? 范式理论是关系数据库中的一个规范化过程。第三范式是范式理论中的一种常见形式…

    编程 2025-04-29
  • MySQL递归函数的用法

    本文将从多个方面对MySQL递归函数的用法做详细的阐述,包括函数的定义、使用方法、示例及注意事项。 一、递归函数的定义 递归函数是指在函数内部调用自身的函数。MySQL提供了CRE…

    编程 2025-04-29
  • SQL预研

    SQL预研是指在进行SQL相关操作前,通过数据分析和理解,确定操作的方法和步骤,从而避免不必要的错误和问题。以下从多个角度进行详细阐述。 一、数据分析 数据分析是SQL预研的第一步…

    编程 2025-04-28

发表回复

登录后才能评论