千家信息网

Mysql数据库审计

发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,Mysql数据库审计简介数据库审计(简称DBAudit)能够实时记录网络上的数据库活动,对数据库操作进行细粒度审计的合规性管理,对数据库遭受到的风险行为进行告警,对攻击行为进行阻断。它通过对用户访问数
千家信息网最后更新 2024年11月23日Mysql数据库审计

Mysql数据库审计

简介

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

在MySQL数据库中(5.5版本),增加了一个新的插件:Audit plugin,用于对数据库连接和数据库操作进行审计。该插件在mysql5.6.20企业版及其后续版本才比较完善。

在生产中我们所采用的MySQL为社区免费版,不能使用企业版的插件,为此我们使用Mariadb社区提供的audit插件。

注:percona,mcafee,mariadb都有提供审计插件。三种插件安装方式一样。

数据库版本

Mysql版本:Mysql 5.6.26

安装方式: 二进制

插件来源: mariadb

Server_audit.so 文件从mariadb版本获得

下载地址:https://mariadb.com/resources/downloads

插件安装

插件可通过两种方式加载:

[mysqld]

plugin-load=server_audit.so

如果想要在运行过程中该插件不被移除,配置如下

1,.my.cnf 文件配置

[mysqld]

plugin-load=server_audit.so

audit-log=FORCE_PLUS_PERMANENT

2:动态安装插件过程



                                                                 ###查询MySQL plugin 安装位置                                                        1. show global variables like '%plugin_dir%';                                                        2. 将server_audit.so 文件拷贝到上面的路径                                                        3. 加载server_audit.so插件                                                         mysql> install plugin server_audit soname 'server_audit.so';                                                         #### 查询插件是否加载成功                                                         mysql> show plugins                                                         ###配置参数                                                        4. mysql > show global variables like '%server_audit%';                                                         ### 审计查询:【 CONNECTION,QUERY,TABLE,QUERY_DDL,QUERY_DML 】                                                        4. mysql > set global server_audit_events='QUERY';                                                        5. # 打开审计功能                                                        6. set global server_audit_LOGGING='ON';                                                         ###测试                                                        1. mysql >select count(*) from serviceCount;                                                        2. mysql >select count(*) from serviceCo;                                                        3. ERROR 1146 (42S02): Table 'test.serviceCo' doesn't exist                                                        4. more server_audit.log                                                        5.  20160523 10:24:26,10-0-10-70,root,localhost,615,172,QUERY,test,'select count(*) from serviceCount',0                                                        6.  20160523 10:29:11,10-0-10-70,root,localhost,615,174,QUERY,test,'select count(*) from serviceCo',1146                        
3.查看所有加载的插件 select * from INFORMATION_SCHEMA.PLUGINS\G



4.重要配置参数:

server_audit = FORCE_PLUS_PERMANENT

server_audit_events ='CONNECT,QUERY,TABLE'

server_audit_logging =ON

server_audit_incl_users =root

server_audit_file_rotate_size = 10G

server_audit_file_path = /data/mysql/server_audit.log

全部配置参数:

参考地址:

https://mariadb.com/kb/en/mariadb/server_audit-system-variables/

server_audit_events

server_audit_excl_users

server_audit_file_path

server_audit_file_rotate_now

server_audit_file_rotate_size

server_audit_file_rotations

server_audit_incl_users

server_audit_logging

server_audit_mode

server_audit_output_type

server_audit_query_log_limit

server_audit_syslog_facility

server_audit_syslog_ident

server_audit_syslog_info

server_audit_syslog_priority

0