binlog日志会记录增删改操作:create,drop,insert,delete,update等的操作。但是不会记录是什么用户操作的。
记录用户的上述操作:
使用init-connect + binlog的方法进行mysql的操作审计。
由于mysql binlog记录了所有对数据库长生实际修改的sql语句,及其执行时间,和connection_id但是却没有记录connection_id对应的详细用户信息。
因此本文将通过init-connect,在每次连接的初始化阶段,记录下这个连接的用户,和connection_id信息。
在后期审计进行行为追踪时,根据binlog记录的行为及对应的connection-id 结合 之前连接日志记录 进行分析,得出最后的结论。
实现步骤:
1,创建审计的库和表
#建库表代码
create database db_monitor ;
use db_monitor ;
CREATE TABLE accesslog
( thread_idint(11) DEFAULT NULL, #进程id
log_time datetimedefault null, #登录时间
localname varchar(50) DEFAULT NULL, #登录名称,带详细ip
matchname varchar(50) DEFAULT NULL, #登录用户
key idx_log_time(log_time)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2,配置init