审计日志功能是一个插件,需要先安装插件才可以使用
过滤 sql 语句,可以通过插件内核参数 audit_log_include_commands 与 audit_log_exclude_commands 参数设置,两参数互斥,功能相反
查看参数支持取值
打开内核参数 performance_schema=ON,然后重启数据库,执行sql查看
set variables performance_schema=ON
SELECT name FROM performance_schema.setup_instruments WHERE name LIKE "statement/sql/%" ORDER BY name;
值设置
audit_log_include_commands:记录那些哪些类型sql
audit_log_exclude_commands:不记录哪些类型sql
参考:https://www.jianshu.com/p/2c893f5b385c(https://galeracluster.com/library/documentation/audit-log-plugin.html)
添加多个值用逗号分隔
只有一个参数可以被设置,另一个需要为NULL,如果设置了另一个会报错设置不了,被设置的值最长长度为 1024,如果把所有取值都设置了,会被截断一部分
如果设置值错误了,根据情况是否有影响,如 audit_log_include_commands 只设置 abc,代表字记录abc 类型语句,但sql 类型中没有这种类型,那内核审计日志就什么都不会记录了
持久化
如果此次设置了没有加到 my.conf 配置文件中,重启 mysql 就会失效,参数还原默认值,要想永久生效,可以添加到my.conf文件中,且带上 loose- 前缀,代表在插件加载之后再加载此参数