GBase 8a
运维管理
文章

审计日志(audit log)和常规日志(general log)的区别

发表于2025-05-10 22:44:2439次浏览1个评论

1、记录时间不同
audit_log是sql执行完成后,记录的。 而general_log是集群一拿到SQL就开始记录的。

如果sql执行过程中,被强行kill掉(比如kill -9 进程),或者宕机等, audit_log是无法记录这个日志的。

如果SQL语法错误,general_log是不记录的,因为数据库根本没执行,而audit_log是记录的。

2、用途不同
audit_log虽然记录了所有发过来的命令,所以从表面看确实符合【审计】的用途。但从其功能看,更倾向于排查数据库性能,因为其记录了数据执行耗时等信息。一般都用于后续的调优等操作。更像是慢日志的功能。

而且,审计日志通过审计策略,可以只记录感兴趣的操作,包括执行时间,用户,SQL类型等等。

general_log是更多的用于记录接收到的命令。从某个角度看,这个更像审计日志,虽然他只记录【合法】的SQL。其实非法的,无法执行的SQL,比如语法错误的,不会对数据库有任何影响,记录了也没啥意思。

如果用于上报审计,建议只使用File格式的general_log。

评论

登录后才可以发表评论
用户头像
levvel发表于 4个月前
受益匪浅!