mysql audit plugin

2018-11-05 17:40:06

此文转载于ora600,略作调整.

下载地址如下
http://pan.baidu.com/s/1dFGFCrv

mysql5.6.X.tar.gz到mysql-5.7.8-rc.tar.gz是一个版本—-audit5_6_21.so
mysql5.7.1.tar.gz—mysql5.7.9.tar.gz是一个版本—-audit5_7_9.so
mysql5.7.10–mysql5.7.22是一个版本

一、查找插件所在位置

1
2
3
4
5
6
7
8
mysql> show variables like '%plugin_dir%';
+---------------+------------------------------+
| Variable_name | Value                        |
+---------------+------------------------------+
| plugin_dir    | /usr/local/mysql/lib/plugin/ |
+---------------+------------------------------+
1 row in set (0.00 sec)
---------------------

二、将audit_版本号.so插件下载后放到plugin_dir位置

1
mv audit_版本号.so  audit.so

三、加载插件

1
mysql> install plugin audit  SONAME 'audit.so';

四、卸载插件

1
mysql> uninstall plugin audit;

使用插件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
mysql> show variables like '%audit%';
+----------------+----------------------+
| Variable_name  | Value                |
+----------------+----------------------+
| audit_logfile  | /tmp/mysql_audit.log |
| audit_myswitch | OFF                  |
| audit_num      | 0                    |
| audit_sql      | all_sql              |
| audit_user     | all_user             |
+----------------+----------------------+
5 rows in set (0.01 sec)

mysql> set global audit_logfile='/tmp/mysql_audit_1.log';----只读变量,审计仅指定在/tmp/mysql_audit.log文件,保障权限可以写
ERROR 1238 (HY000): Variable 'audit_logfile' is a read only variable

set global audit_sql='delete;select;drop';   -----这些审计关键字用;分开
set global audit_user='user2;user3';         ----审计用户用;隔开
set global audit_num =0;                          ----审计sql影响的最少行数,默认为0
set global audit_myswitch=on|off|ON|OFF|1|0;       -----开启关闭审计

查看日志linux下tailf /tmp/mysql_audit.log

ref
mysql审计插件(运维不在背锅)
Writing Audit Plugins
mcafee/mysql-audit