本文所使用数据库为mysql8.0,5.x版本的mysql上没试过一下步骤调用审计功能
无需下载任何插件,两行命令就能搞定
一、首先查看审计配置情况
1.show global variables like 'log_timestamps';
2.show global variables like '%general%';
输入命令后结果如下:
image.png
log_timestamps表示记录审计日志的时间是从哪里获取。general_log表示审计功能是否开启,general_log_file表示审计信息的存储文件
二、开启审计
1.set global general_log = on;
2.set global log_timestamps = SYSTEM;
image.png
使用审计日志记录时间为系统当前时间
也可以使用–set global general_log_file = /var/lib/mysql/文件名.log语句,将审计日志存储文件名改为自己想要设置的文件名
就这样审计功能就完成了,在终端使用vim /var/lib/mysql/文件名.log语句,就能查看审计记录了
还有如下改进方案
使用数据库将登陆信息记录下来,这样在真实情况工作环境下,可以根据登陆时间戳更快地在审计日志中定位到问题发生源
(因为无论sql有无语法错误,只要执行了就会记录,导致记录大量无用信息,后期的筛选有难度。审计日志内容很多,当真的出现问题,一个个找时会很麻烦)另外,因为新建的表普通用户没有权限删除记录,而log文件时可以删除记录的,所以若没有审计表的话若普通用户能接触保存log的那台主机,则能手动删除
将审计日志压缩,由于是一个log系统,推荐使用archive存储引擎,有利于数据厄压缩存放。如果数据库连接数量很大的话,建议一定时间做一次数据导出,然后清表。
网友评论