需求

东莞项目:应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计;(高风险项)


引入general_log

开启 general log 将所有到达MySQL Server的SQL语句记录下来。

一般不会开启开功能,因为log的量会非常庞大。但个别情况下可能会临时的开一会儿general log以供排障使用。  

相关参数一共有3:general_log、log_output、general_log_file

show variables like 'general_log'; -- 查看日志是否开启

set global general_log=on; -- 开启日志功能

show variables like 'general_log_file'; -- 看看日志文件保存位置

set global general_log_file='tmp/general.lg'; -- 设置日志文件保存位置

show variables like 'log_output'; -- 看看日志输出类型 table或file

set global log_output='table'; -- 设置输出类型为 table

set global log_output='file'; -- 设置输出类型为file


解决

开启数据库general_log步骤

第一步:登陆数据库

mysql -h localhost -P 3307 -u root -p root

第二步:启用审计

set global general_log = ON;

第三步:检验结果

show variables like ‘%log%’;  

可以看到默认general_log是OFF的,我们直接开启:set global general_log = ON;(说明:此参考可以动态修改,但是重启mysql失效,弱要永久生效,则需要修改需要在my.cnf的【mysqld】中添加:general_log = 1)

MySQL 开启数据库的日志审计功能_日志 审计