20210121--通过init-connect开启MYSQL数

2021-03-23  本文已影响0人  負笈在线

方法缺点:只对有低级权限的用户的操作有记录,权限高的则没有 。优点:日志信息比较小,对性能影响小

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;

上一篇 下一篇

猜你喜欢

热点阅读