MySQL 开源的审计插件主要用于记录数据库的操作行为,如查询、登录、权限变更等,以便进行安全审计、合规性检查和问题排查。以下是几个常见的开源 MySQL 审计插件:
• 简介: MariaDB Audit Plugin 是一个功能强大的审计插件,最初由 MariaDB 开发,但也可以用于 MySQL 社区版和企业版。
• 功能特点:
• 安装方式:
# 下载插件(确保与 MySQL 版本兼容)
wget https://downloads.mariadb.com/Audit-Plugin/audit-plugin-VERSION.tar.gz
# 解压并复制插件文件到 MySQL 插件目录
tar -xzf audit-plugin-VERSION.tar.gz
cp server_audit.so /usr/lib/mysql/plugin/
# 安装插件
INSTALL PLUGIN server_audit SONAME 'server_audit.so';
• 配置参数:
server_audit_logging=ON
:启用审计日志。server_audit_events=CONNECT,QUERY,TABLE
:指定需要记录的事件类型。server_audit_output_type=FILE
:设置日志输出目标(文件或 syslog)。• 文档链接: MariaDB Audit Plugin Documentation
• 简介: Percona 提供了一个基于 MySQL 的审计插件,适用于 Percona Server 和 MySQL 社区版。
• 功能特点:
• 安装方式:
# 安装插件
INSTALL PLUGIN audit_log SONAME 'audit_log.so';
# 启用审计日志
SET GLOBAL audit_log_policy=ALL;
• 配置参数:
audit_log_format=JSON
:设置日志格式为 JSON。audit_log_policy=ALL
:记录所有操作(包括查询和连接)。audit_log_file=/var/log/mysql/audit.log
:指定日志文件路径。• 文档链接: Percona Audit Log Plugin Documentation
• 简介: McAfee 开发的 MySQL 审计插件是一个开源项目,支持 MySQL 和 Percona Server。
• 功能特点:
• 安装方式:
# 下载插件
git clone https://github.com/mcafee/mysql-audit.git
# 编译插件
cd mysql-audit
make
# 复制插件文件到 MySQL 插件目录
cp libaudit_plugin.so /usr/lib/mysql/plugin/
# 安装插件
INSTALL PLUGIN audit SONAME 'libaudit_plugin.so';
• 配置参数:
audit_json_file=1
:启用 JSON 格式的日志输出。audit_record_cmds='select,insert,update,delete'
:指定需要记录的命令类型。audit_log_file=/var/log/mysql/audit.log
:指定日志文件路径。• 文档链接: McAfee MySQL Audit Plugin GitHub
• 简介: MySQL 企业版自带的审计插件,虽然不是完全开源的,但可以通过试用版或社区资源获取。
• 功能特点:
• 安装方式:
# 安装插件
INSTALL PLUGIN audit_log SONAME 'audit_log.so';
# 启用审计日志
SET GLOBAL audit_log_policy=ALL;
• 注意: 此插件仅适用于 MySQL 企业版,社区版用户需要寻找其他替代方案。
• 文档链接: MySQL Enterprise Audit Plugin Documentation
如果现有插件无法满足需求,可以考虑使用以下方法实现自定义审计功能:
• General Query Log: 启用 MySQL 的通用查询日志,记录所有查询操作。
SET GLOBAL general_log = ON;
SET GLOBAL log_output = 'TABLE'; -- 或 'FILE'
• ProxySQL: 使用 ProxySQL 作为中间层,记录所有通过代理的查询。
插件名称 | 适用版本 | 日志格式 | 性能开销 | 开源状态 | 推荐场景 |
---|---|---|---|---|---|
MariaDB Audit Plugin | MySQL、MariaDB | 文件、syslog | 较低 | 开源 | 需要高性能审计的生产环境 |
Percona Audit Log Plugin | MySQL、Percona Server | JSON | 中等 | 开源 | 需要 JSON 格式日志的场景 |
McAfee MySQL Audit Plugin | MySQL、Percona Server | JSON、自定义 | 较低 | 开源 | 高并发场景下的审计需求 |
MySQL Enterprise Audit | MySQL 企业版 | XML | 中等 | 商业版 | 企业级审计需求 |
General Query Log | 所有 MySQL 版本 | 文件、表 | 较高 | 内置功能 | 简单审计需求,短期启用 |
对于开源 MySQL 用户,推荐优先选择 MariaDB Audit Plugin 或 McAfee MySQL Audit Plugin,因为它们功能强大且性能开销较低。如果需要更灵活的日志格式,可以选择 Percona Audit Log Plugin。