方法缺点:只对有低级权限的用户的操作有记录,权限高的则没有 。优点:日志信息比较小,对性能影响小
1.创建审计用的库表
mysql> CREATE TABLE accesslog
( thread_id int(11) DEFAULT NULL, #进程id
log_time datetime default 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-connect参数
mysql> set global init_connect='insert into db_monitor.accesslog(thread_id,log_time,localname,matchname) values(connection_id(),now(),user(),current_user())';
mysql> flush privileges;
3.授予普通用户对accesslog表的insert权限
mysql> create user demon@'%';
mysql> grant insert on db_monitor.accesslog to demon@'%';
4.测试
1)进入具有insert(普通权限)的用户demon中对数据库进行一系列操作
mysql> use test;
mysql> delete from runoob_tbl where runoob_id=2;
mysql> flush privileges;
2)进入具有高级权限的用户下,查看表中的记录
mysql> select * from db_monitor.accesslog;