Error number: MY-013478; Symbol: ER_AUDIT_LOG_SUPER_PRIVILEGE_REQUIRED; SQLSTATE: HY000
Message: SUPER privilege or AUDIT_ADMIN role required for ‘%s’@’%s’ user.
错误说明
MySQL的ER_AUDIT_LOG_SUPER_PRIVILEGE_REQUIRED错误表示审核日志功能需要超级用户权限。这个错误来自Audit Plugin,它是MySQL 5.6中引入的安全功能,可以记录审核日志。允许跟踪来自指定用户和会话的何种活动。
常见案例
当用户尝试启用审核日志记录功能时,可能会遇到ER_AUDIT_LOG_SUPER_PRIVILEGE_REQUIRED错误,这是因为只有超级用户才能完全启用和使用Audit Plugin。例如,当一个非超级用户尝试执行以下DML语句时,可能会发生此错误:
SET GLOBAL audit_log_file=’audit.log’;
解决方法
1. 使用超级用户凭据登录MySQL服务器;
2. 启用 audit_log 插件:INSTALL PLUGIN audit_log SONAME 'audit_log.so’;
3. 指定要记录的审核日志文件:set GLOBAL audit_log_file=’audit.log’;
4. 指定要记录的审核日志类型:set GLOBAL audit_log_format=MIXED (请参阅MySQL文档以获取可用的审核日志格式);
5. 启用审核日志:set GLOBAL audit_log_policy=ALL;
6. 禁用 audit_log 插件:UNINSTALL PLUGIN audit_log;
7. 重新登录以使设置生效。
完成以上步骤后,可以在指定的审核日志文件中查看审核日志消息。此外,也可以通过查看mysql.audit_log表来检查审核日志消息。