阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

MySQL audit访问日志记录

112次阅读
没有评论

共计 841 个字符,预计需要花费 3 分钟才能阅读完成。

假如某个数据库被人删除了,但是拥有数据库权限的人很多,这样有必要记录下每个人的操作纪律。但是如果开启了 general log 的话,日志又非常大。

下面的使用 init_connect 的方法还不错。

登录进MySQL,创建一个日志表

> create database accesslog;

> use accesslog;

> CREATE TABLE `accesslog` (`id` int(11) primary key auto_increment,`user` char(100),`matchname` varchar(30));

热配置生效

> set global init_connect=’insert into accesslog.accesslog values (connection_id(),user(),now());’

然后,vi /etc/my.cnf

[mysqld] 添加

init_connect=’insert into accesslog.accesslog values (connection_id(),user(),now());’

将配置持久化到文件。

# 注意:

需要给普通用户加上操作 insert 操作 accesslog.* 的权限 , 如:grant INSERT on accesslog.* to’abc’@’%’;

然后,创建几个普通级别权限的账号(需要给普通用户加上操作 insert 操作 accesslog.* 的权限),用这些低级别账户进去操作下数据库或者数据表。

root用户进去查看操记录:

> select * from accesslog.accesslog;  类似如下:

MySQL audit 访问日志记录

假如我们现在发现数据库被人为误删了数据,则可从 binlog 中看到相关的事务的thread_id,如下图的红色部分38

MySQL audit 访问日志记录

再结合 accesslog.accesslog 里面的记录,可以看到是下图这个时间点登录的账户操作的。这样就有据可查。

MySQL audit 访问日志记录

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-02/140732.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计841字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中