记录时间不同
audit_log是sql执行完成后,记录的。 而general_log是集群一拿到SQL就开始记录的。
如果sql执行过程中,被强行kill掉(比如kill -9 进程),或者宕机等, audit_log是无法记录这个日志的。
如果SQL语法错误,general_log是不记录的,因为数据库根本没执行,而audit_log是记录的。
用途不同
audit_log虽然记录了所有发过来的命令,所以从表面看确实符合【审计】的用途。但从其功能看,更倾向于排查数据库性能,因为其记录了数据执行耗时等信息。一般都用于后续的调优等操作。更像是慢日志的功能。
而且,审计日志通过审计策略,可以只记录感兴趣的操作,包括执行时间,用户,SQL类型等等。
general_log是更多的用于记录接收到的命令。从某个角度看,这个更像审计日志,虽然他只记录【合法】的SQL。其实非法的,无法执行的SQL,比如语法错误的,不会对数据库有任何影响,记录了也没啥意思。
如果用于上报审计,建议只使用File格式的general_log。
【转laozizhu运维经验】
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




