mysql audit审计插件
mysql审计功能一直都是弱项:
1.之前有人借助于init-connect和binlog实现变相审计,不过比较悲剧的是不能对root用户(超级权限的用户)进行审计!可以参考:http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=3632588
2.Oracle公司在5.5的企业版也增加了mysql-audit plugin,问题是该插件类似于general-log,而且仅仅存在于企业版!可以参考:http://www.cnblogs.com/cenalulu/archive/2012/11/12/mysql_audit_plugin_test.html
3.macfee公司基于percona开发的mysql audit 插件。
macfee的mysql audit插件虽然日志信息比较大,对性能影响大,但是如果想要开启审计,那也应该忍受了。介绍几个参考地址:
wiki首页:https://github.com/mcafee/mysql-audit/wiki
二进制包下载:https://bintray.com/mcafee/mysql-audit-plugin/release包含了5.1,5.5,5.6对应的二进制包
使用非常简单!可以在线开启,也可以使用plugin-load=AUDIT = libaudit_plugin.so重新启动!
在线开启非常简单!
1. 下载对应版本的二进制包
2. 查看mysql插件目录
mysql> SHOW GLOBAL VARIABLES LIKE 'plugin_dir';
+---------------+--------------------------------+
| Variable_name | Value |
+---------------+--------------------------------+
| plugin_dir | /usr/local/mysql55/lib/plugin/ |
+---------------+--------------------------------+
1 row in set (0.01 sec)
3. 复制下载的so文件至plugin_dir
4. INSTALL PLUGIN AUDIT SONAME 'libaudit_plugin.so';
5. 查看对应版本
mysql> SHOW GLOBAL STATUS LIKE 'AUDIT_version';
+---------------+-----------+
| Variable_name | Value |
+---------------+-----------+
| Audit_version | 1.0.4-459 |
+---------------+-----------+
1 row in set (0.00 sec)
安装成功
6.开启audit功能
SET GLOBAL audit_json_file=ON;
7.执行任何语句(默认会记录任何语句),然后去mysql数据目录查看mysql-audit.json文件(默认为该文件)
当然,我们还可以通过命令查看audit相关的命令
mysql> SHOW GLOBAL VARIABLES LIKE '%audi%';
+---------------------------------+----------------------------+
| Variable_name | Value |
+---------------------------------+----------------------------+
| audit_checksum | |
| audit_delay_cmds | |
| audit_delay_ms | 0 |
| audit_json_file | ON |
| audit_json_file_flush | OFF |
| audit_json_file_sync | 0 |
| audit_json_log_file | mysql-audit.json |
| audit_json_socket | OFF |
| audit_json_socket_name | /tmp/mysql-audit.json.sock |
| audit_offsets | |
| audit_offsets_by_version | ON |
| audit_record_cmds | |
| audit_record_objs | |
| audit_uninstall_plugin