mysql 8.4.6开启审计(使用Percona审计插件不成功)
环境:
OS:Centos 7
mysql:8.4.6
Percona-mysql:8.4.0-1(获取审计文件)
说明:Percona-mysql:8.4.0-1审计插件已经不使用于MySQL 8.4版本了
1.下载Percona版本的MySQL
我这里下载的是:Percona-Server-8.4.0-1-Linux.x86_64.glibc2.17
下载完成后解压
tar -xvf Percona-Server-8.4.0-1-Linux.x86_64.glibc2.17.tar.gz
2.获取安全审计需要的文件
component_audit_log_filter.so
路径为:/soft/Percona-Server-8.4.0-1-Linux.x86_64.glibc2.17/lib/plugin
audit_log_filter_linux_install.sql
路径为:/soft/Percona-Server-8.4.0-1-Linux.x86_64.glibc2.17/share
将以上2个文件分别拷贝到安装好的mysql服务器相应的目录
scp component_audit_log_filter.so root@192.168.1.105:/opt/mysql8/lib/plugin/
scp audit_log_filter_linux_install.sql root@192.168.1.105:/tmp/ ##该文件为sql文件,可存放到其他目录
3.修改权限
chown -R mysql:mysql /opt/mysql8
4.安装审计插件
-D mysql指定安装在mysql数据库下
/opt/mysql8/bin/mysql -h localhost -uroot -P3306 -S /opt/mysql8/mysql.sock -p -D mysql</tmp/audit_log_filter_linux_install.sql
5.查看
执行以上脚本后会生成如下2个表
/opt/mysql8/bin/mysql -h localhost -uroot -P3306 -S /opt/mysql8/mysql.sock -p
mysql> show tables;
+------------------------------------------------------+
| Tables_in_mysql |
+------------------------------------------------------+
| audit_log_filter |
| audit_log_user |
安装后会在 mysql 库中生成两张表:
audit_log_filter:存储审计日志的过滤规则(JSON 格式定义)
audit_log_user:关联用户与过滤规则,支持按用户设置审计策略
6.验证插件状态
查看插件列表中是否存在audit_log,确认 audit_log 插件状态为 ACTIVE.
/opt/mysql8/bin/mysql -h localhost -uroot -P3306 -S /opt/mysql8/mysql.sock -p
SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE 'audit%';
7.如下配置项加入到mysql配置文件
# Audit Log
audit-log=FORCE_PLUS_PERMANENT
audit_log_policy = ALL
audit-log-exclude-accounts=root@%
audit_log_file = /opt/mysql8/audit/audit.log
audit_log_format = JSON
audit_log_rotate_on_size=1073741824
audit_log_prune_seconds=1209600
audit_log_strategy=ASYNCHRONOUS
audit_log_encryption = AES