首先安装MariaDB Audit Plugin,将audit_plugin.so复制到MySQL插件目录,并执行INSTALL PLUGIN命令启用;然后在my.cnf中配置server_audit_logging、events、output_type及日志路径等参数,确保目录权限正确;最后通过分析/var/log/mysql/server_audit.log中的连接、查询和表操作记录,实现安全审计。需注意性能影响与日志保护。
MySQL 提供了企业级审计功能,通过安装和配置审计插件可以记录用户对数据库的所有操作行为。虽然 MySQL 社区版不自带审计插件,但可以通过安装 MySQL Enterprise Audit(仅企业版)或使用开源替代方案如 MariaDB Audit Plugin 来实现类似功能。
以 MariaDB Audit Plugin(由 McAfee 开发,兼容 MySQL)为例,说明如何在 MySQL 中开启审计功能:
安装后,可通过修改 MySQL 配置文件(my.cnf 或 my.ini)设置审计日志的行为:
[mysqld] server_audit_logging=ON server_audit_logs_write=ON server_audit_incl_users=root,app_user server_audit_excl_users= server_audit_events=connect,query,table server_audit_output_type=file server_audit_file_path=/var/log/mysql/server_audit.log server_audit_file_rotate_size=1G server_audit_file_rotations=5
关键参数说明:
插件会将操作记录写入指定日志文件。例如,一条典型的审计日志条目可能如下:
20250405 10:23:45,localhost,root,127.0.0.1,test,QUERY,test,'SELECT * FROM users',0
字段含义依次为:时间、主机、用户、IP、数据库、操作类型、对象、SQL语句、状态码。
你可以使用 shell 脚本、grep、awk 或导入 ELK、Splunk 等日志系统进行分析,监控高危操作如 DROP、INSERT、UPDATE 等。
启用审计会影响性能,尤其在高并发场景下。建议:
基本上就这些。只要正确安装插件并合理配置参数,就能有效记录 MySQL 操作行为,满足安全审计需求。不复杂但容易忽略权限和路径问题。