安装插件的方式优缺点:

缺点:日志信息比较大,对性能影响大。

优点:对每一时刻每一用户的操作都有记录。

搭建过程:

到网站(https://bintray.com/version/files/mcafee/mysql-audit-plugin/release/1.1.7-805)下载插件audit-plugin-mysql-5.7-1.1.7-805-linux-x86_64.zip

下载地址:https://bintray.com/mcafee/mysql-audit-plugin/release/1.1.4-725#files

1、把文件上传到/opt目录下

[root@edu-mysql-02 ~]# cd /opt/

[root@edu-mysql-02 opt]# unzip audit-plugin-mariadb-10.2-1.1.4-725-linux-x86_64.zip

2、登录数据库,查看存放路径

1.png

mysql> show global variables like 'plugin_dir';

2.png

[root@edu-mysql-02 opt]# cp audit-plugin-mariadb-10.2-1.1.4-725/lib/libaudit_plugin.so /usr/lib64/mysql/plugin/

[root@edu-mysql-02 opt]# cd /usr/lib64/mysql/plugin/

授权:

[root@edu-mysql-02 plugin]# chmod +x libaudit_plugin.so

[root@edu-mysql-02 plugin]# chown mysql:mysql libaudit_plugin.so

3.png

3、登录数据库进行安装

mysql> install plugin audit soname 'libaudit_plugin.so';

报错信息如下:

ERROR 1123 (HY000): Can't initialize function 'audit'; Plugin initialization function failed.

4.png

解决办法:

1)授权,加载

[root@edu-mysql-02 utils]# pwd

/opt/audit-plugin-mysql-5.7-1.1.4-725/utils

[root@edu-mysql-02 utils]# chmod +x offset-extract.sh

[root@edu-mysql-02 opt]# which mysqld

/usr/sbin/mysqld

[root@edu-mysql-02 utils]# ./offset-extract.sh /usr/sbin/mysqld

5.png

2)编辑/etc/my.cnf

plugin-load=AUDIT=libaudit_plugin.so

audit_offsets = 7824, 7872, 3632, 4792, 456, 360, 0, 32, 64, 160, 536, 7988, 4360, 3648, 3656, 3660, 6072, 2072, 8, 7056, 7096, 7080

6.png

3)重启mysql

[root@edu-mysql-02 utils]# systemctl restart mysqld.service

4、进入mysql安装

mysql> install plugin audit soname 'libaudit_plugin.so';

5、检查:

mysql> show plugins;

7.png

检查版本

mysql> show global status like 'AUDIT_version';

8.png

开启audit功能:

mysql> SET GLOBAL audit_json_file=ON;

9.png

可以查看插件有哪些可配置的参数:

mysql> show variables like '%audit%'G;

为了保证重启数据库,配置不丢失,修改my.cnf 配置文件,将下面的配置添加到[mysqld]中,所以在配置文件中my.cnf加入参数:

总的如下:

plugin-load=AUDIT=libaudit_plugin.so

audit_offsets = 7824, 7872, 3632, 4792, 456, 360, 0, 32, 64, 160, 536, 7988, 4360, 3648, 3656, 3660, 6072, 2072, 8, 7056, 7096, 7080

audit_json_file = on

audit_record_cmds = 'insert,delete,update,create,drop,alter,grant,truncate'

查看日志:

[root@edu-mysql-02 log]# find / -name mysql-audit.json

[root@edu-mysql-02 log]# tail -f /var/lib/mysql/mysql-audit.json

10.png