
MySQL 企业级特性:安全审计

MySQL企业版中的审计功能(MySQL Enterprise Audit)是MySQL Enterprise Security的重要组成部分,主要用于记录、监控和分析所有数据库活动。它对于满足严格行业法规合规性要求很关键。本文将对该特性进行具体介绍。
企业级审计的主要特性
MySQL Enterprise Audit 为数据库管理员(DBA)提供了必备工具,以便在新旧应用程序中添加审计合规功能,其主要特性如下:
- 自定义审计日志事件。可以在 MySQL 审计日志中添加自定义事件,从而提供与 SQL 调用相关的额外信息
- 加密。审计文件现在可以使用标准的 AES - 256 加密算法进行加密。
- 压缩。使用压缩技术可以将审计存储空间减少高达 10 倍。
- JSON 审计数据格式。在审计日志配置中指定所需的输出格式为 JSON 或 XML。
- 过滤功能以保护敏感数据。您可以使用模板定义要审计的内容,或者使用简单的 JSON 过滤器定义来设计高度自定义的过滤器。
- 满足监管合规标准。确保按照相关法规的要求正确配置审计日志,记录所有必要的数据库活动。
- 动态且易于管理。可以动态地启用、禁用审计流,更改过滤规则等,并且无需停机。
- 移除敏感数据。在审计日志配置中,设置敏感数据掩码规则。

启用企业级审计
安装审计插件 :在数据库服务器上,使用以下 SQL 命令动态安装审计插件。
1 | mysql> INSTALL PLUGIN audit_log SONAME 'audit_log.so'; |
查看插件信息。
1 | mysql> select * from information_schema.plugins where plugin_name = 'audit_log'\G |
持久化配置需要修改 MySQL 配置文件 my.cnf
。
1 | audit_log=FORCE_PLUS_PERMANENT |
该参数值表示,服务器加载插件,并在服务器运行时防止它被删除。
启用了审计日志插件,它会增加几个系统变量,允许控制日志记录:
1 | mysql> SHOW VARIABLES LIKE 'audit_log%'; |
企业级审计的日志格式
日志格式由参数 audit_log_format 进行控制,目前支持三种格式:
- NEW,新 XML 格式:与旧式 XML 格式相比,这种 XML 格式与 Oracle Audit Vault 的兼容性更好。MySQL 8.4 默认使用 new-style XML 格式。
- OLD,旧 XML 格式:在旧的 MySQL 系列中默认使用的原始审计日志格式。
- JSON 格式:将审计日志写入 JSON 数组。只有这种格式支持可选的查询时间和大小统计。
默认情况下,审计日志文件内容以新 XML 格式写入,不压缩或加密。
我们将日志格式调整为 JSON。
1 | mysql> set persist_only audit_log_format = json; |
该参数需要重启后生效。
1 | mysql> restart; |
查看审计日志。
1 | bash-5.1# cat audit.log |
禁用审计功能
audit_log_disable 变量允许禁用所有连接和已连接会话的审计日志记录。例如:
1 | mysql> set global audit_log_disable = true; |
当 audit_log_disable 设置为 false 时,会重新启用这个插件。
以 audit_log_disable 设置为 true 时,会产生如下警告。
1 | 2025-03-08T06:25:56.055951Z 12 [Warning] [MY-013834] [Server] Plugin audit_log reported: 'Audit Log is disabled. Enable it with audit_log_disable = false.' |
使用审计注意事项
使用企业级审计时有几点注意事项。
-
只有SQL语句被记录。非 SQL API(如memcached、Node.JS和NDB API)所做的更改不会被记录到日志中。
-
只有顶级语句被记录,存储程序中的语句、触发器不只被记录。
-
LOAD DATA 等语句引用的文件内容不会被记录。
总结
本文介绍了 MySQL 企业版的安全特性:审计插件。及其一般使用方式和注意事项。更多企业级特性我们后面逐一介绍。
Have a nice day ~
– / END / –
- Title: MySQL 企业级特性:安全审计
- Author: ShawnYan
- Created at: 2025-03-08 23:00:00
- Updated at: 2025-03-08 23:00:00
- Link: https://shawnyan.cn/2025/mysql/mysql-ee-audit/
- License: This work is licensed under CC BY-NC-SA 4.0.