MySQL使用MariaDB Audit Plugin实现审计功能。
一、安装MariaDB Audit Plugin
1.1 准备MariaDB安装环境
为了不对使用mysql的主机造成影响,建议使用另一台与mysql主机系统一致的主机来安装MariaDB,然后不用执行下面的卸载操作
1 | sudo apt-get autoremove --purge mysql-\* |
1.2 安装MariaDB
1 | sudo apt-get install mariadb-server |
安装完成之后在/usr/lib/mysql/plugin目录中有server_audit.so插件,将该插件拷贝出来备用(拷贝到mysql主机的/usr/lib/mysql/plugin目录中)
1.3 MySQL环境恢复
如果是在mysql的主机上进行安装MariaDB操作,使用如下命令将MariaDB卸载,并重新安装mysql
1 | sudo apt-get remove --purge mariadb-\* |
1.4 添加MySQL配置
修改/etc/mysql/my.cnf文件,在文件末尾添加如下内容
1 | [mysqld] |
重新启动MySQL
1 | service mysql restart |
二、Mysql审计日志分析
2.1 server_audit_events变量过滤功能
使用mysql -uroot -p登陆数据库,执行如下命令修改变量为如下
1 | set global server_audit_events='QUERY_DDL'; |
执行如下SQL语句
1 | create database test2; |
1 | 20191019 20:56:50,delta-mysql,root,localhost,16,1300,QUERY,test,'create database test2',0 |
由上图可见只有create类型的日志被记录下来,insert和select类型的操作日志并没有被记录下来,并且操作类型字段显示为QUERY类型
使用mysql -uroot -p登陆数据库,执行如下命令修改变量为如下
1 | set global server_audit_events='QUERY_DDL,QUERY_DML'; |
1 | create database test3; |
前两行是上面的日志,后面的是新产生的日志
1 | 20191019 20:56:50,delta-mysql,root,localhost,16,1300,QUERY,test,'create database test2',0 |
由上可见,create,select和insert类型的日志均被记录下来,并且操作类型字段均为QUERY类型,并不是QUERY_DDL和QUERY_DML类型
根据官方文档显示,QUERY_DDL操作类型指的是进行CREATE等操作时才产生QUERY_DDL操作类型的日志,QUERY_DML操作类型是进行SELECT等操作时才产生QUERY_DML操作类型的日志。
综上所述,server_audit_events确实对操作日志起到了过滤作用,但是实际日志中操作类型字段只有QUERY。说明QUERY_DDL确实起到了日志类型过滤作用,实际操作类型字段仍为QUERY。
2.2TABLE Event分析
按照官方文档显示,执行查询操作时会显示操作类型为READ的TABLE事件日志
1 | 20170817 16:04:33,ip-172-30-0-38,root,localhost,29,913,READ,company,employees, |
下面是在MySQL中执行查询操作产生的audit日志,由最后一条可以看出,并没有READ类型的操作日志。
1 | 20191020 10:48:09,delta-mysql,root,localhost,3,31,QUERY,wordpress,'SELECT * FROM wp_options WHERE option_name LIKE \'%Executive%\' OR title LIKE \'%Manager%\'',1054 |
通过查询资料,TABLE事件只支持MariaDB 5.5.31 以及更新的版本,MySQL Server不提供MariaDB Audit Plugin需要的信息来追踪TABLE事件。
三、参考资料
MariaDB Audit Plugin 官方文档MYSQL-MARIADB AUDIT PLUGIN INSTALLATION AND CONFIGURATION
原文链接: https://www.delta1037.cn/2019/Deploy/MySQL使用MariaDBAuditPlugin实现审计功能/
版权声明: 转载请注明出处.