如何配置MySQL开启audit_log插件以审计用户登录及非法访问?
- 内容介绍
- 文章标签
- 相关推荐
本文共计981个文字,预计阅读时间需要4分钟。
MySQL默认不记录用户登录行为,必须手动启用`audit_log`插件并配置规则,否则无法查看到谁在什么时间登录过库、连接失败了几次、执行了哪些敏感语句。
确认 MySQL 版本是否支持 audit_log 插件
只有 MySQL 5.7.28+(企业版)或 MySQL 8.0.19+(社区版起内置 audit_log)才原生支持;MariaDB 用的是 server_audit 插件,不能混用。
- 运行
SELECT VERSION();查版本,低于 5.7.28 且是社区版 → 基本没戏,得换方案(比如用general_log+ 日志解析,但性能差、无登录状态区分) - MySQL 8.0.19+ 社区版可直接安装,无需额外下载插件包
- 检查插件是否存在:
SHOW PLUGINS;看输出里有没有audit_log行,Status是ACTIVE或DISABLED
加载 audit_log 插件并持久化配置
插件不随 mysqld 启动自动加载,必须显式安装,且配置写进 my.cnf 才能重启不失效。
本文共计981个文字,预计阅读时间需要4分钟。
MySQL默认不记录用户登录行为,必须手动启用`audit_log`插件并配置规则,否则无法查看到谁在什么时间登录过库、连接失败了几次、执行了哪些敏感语句。
确认 MySQL 版本是否支持 audit_log 插件
只有 MySQL 5.7.28+(企业版)或 MySQL 8.0.19+(社区版起内置 audit_log)才原生支持;MariaDB 用的是 server_audit 插件,不能混用。
- 运行
SELECT VERSION();查版本,低于 5.7.28 且是社区版 → 基本没戏,得换方案(比如用general_log+ 日志解析,但性能差、无登录状态区分) - MySQL 8.0.19+ 社区版可直接安装,无需额外下载插件包
- 检查插件是否存在:
SHOW PLUGINS;看输出里有没有audit_log行,Status是ACTIVE或DISABLED
加载 audit_log 插件并持久化配置
插件不随 mysqld 启动自动加载,必须显式安装,且配置写进 my.cnf 才能重启不失效。

