mysql如何配置审计日志输出_mysql audit_log_format设置

audit_log_format 设置成 STATEMENT 还是 JSON?MySQL 审计日志的 audit_log_format 只支持两个值:NEWLINE(已弃用)、JSON,没有 STATEMENT 选项。官方文档里写的 "STATEMENT" 是旧版 MySQL Enterprise Audit 插件的遗留描述,5.7.28+ 和 8.0.x 中实际只认 JSON ------ 设成其他值会导致插件加载失败或日志静默丢弃。实操建议:必须设为 JSON,否则 audit_log 插件可能无法启用,启动时会报错 Plugin 'audit_log' init function returned error配置方式是:在 my.cnf 的 mysqld 段下写 audit_log_format=JSON,不能带引号、空格或注释改完后要重启 mysqld;在线 SET 不生效,该变量是只读的(read_only)audit_log_policy=ALL 不等于"记录所有语句"很多人以为设了 audit_log_policy=ALL 就能抓到每个 SELECT 或 INSERT,其实它只控制"审计事件类型"的粒度,比如连接、断开、查询开始/结束、表访问等,不控制 SQL 语句体是否写入日志。真正决定语句内容是否落盘的是 audit_log_include_accounts 和 audit_log_exclude_accounts 的匹配逻辑,以及用户权限(如是否拥有 AUDIT_ADMIN)。常见错误现象:日志里只有 connect / disconnect 事件,没看到 query 类型 ------ 很可能是账号被 audit_log_exclude_accounts 匹配到了root 用户有日志,普通用户没有 ------ 检查该用户是否被显式排除,或是否缺少 AUDIT_ADMIN 权限(部分版本要求)audit_log_policy=ALL 下仍漏日志 ------ 实际上 MySQL 默认只对具备 SUPER 或 AUDIT_ADMIN 的会话开启完整事件捕获,普通用户默认只记 connect/disconnectaudit_log_file 路径写错会导致插件静默失效audit_log_file 不是普通日志路径,它受 MySQL 启动用户权限和 secure_file_priv 限制。设成 /var/log/mysql/audit.log 看似合理,但如果 mysqld 是以 mysql 用户运行,而该目录属主是 root 且无写权限,插件不会报错,而是直接放弃写日志 ------ 表现为"配置全对,但文件始终为空"。 Wegic AI网页设计和开发工具

相关推荐
xixiaoyunya4 分钟前
数据库三种备份方式怎么组合?从原理到落地的完整方案
数据库
2501_933670796 分钟前
2027届数学与应用数学转经营分析:SQL、财务指标与业务指标补齐路线
数据库·sql·数学建模
我科绝伦(Huanhuan Zhou)10 分钟前
oracle坏块导致备份不了
数据库·oracle·ffmpeg
Είναι η κοπέλα12 分钟前
llama.cpp 与 GGUF 格式:本地大模型的“裸引擎“
开发语言·人工智能·pytorch·python·conda
IT大白鼠24 分钟前
图数据库系列 · 第 08 篇——面试收官:高频题与全景总结
数据库·面试·职场和发展·nosql·图数据库
xixiaoyunya28 分钟前
定时备份数据库怎么规划周期?一套“少打扰业务、真能恢复“的策略
数据库
liangshanbo12151 小时前
主系统登录后,子系统怎么实现自动登录?
java·网络·数据库
大草原的小灰灰1 小时前
Python面向对象编程
开发语言·python
许彰午1 小时前
05-静默安装常见报错与解决
数据库
华研前沿标杆游学1 小时前
企业参访入口 | 走进华为坂田基地,深圳华为坂田基地考察游学参访
python