mysql 开启审计功能( linux 版本)

2015-06-25 15:11:47 +08:00
 Mztck

创建一个用于存放连接日记的数据和表.

creat database accesslog;
CREATE TABLE accesslog.accesslog(idint(11)primary key auto_increment,timetimestamp,localnamevarchar(30),matchnamevarchar(30));
创建用户权限.
grant select on accesslog.* to root;
注意用户必须对accesslog表具有insert权限.
grant select on accesslog.* to user@'%';
退出数据库或者重新开一个命令界面

vi /etc /init.d /mysqld

注:在[mysqld]下添加以下这段话.

init-connect='insertinto accesslog.accesslog(id,time,localname,matchname)values(connection_id(),now(),user(),current_user());'

保存退出回到数据库.
select*from accesslog.accesslog where id= ;
show processlist;

2695 次点击
所在节点    Linux
3 条回复
xfwduke
2015-06-26 19:01:35 +08:00
1. init-connect 在短连接场景下是个巨坑
2. accesslog 表如果是 MyISAM 引擎也是个坑, 可以参考 MyISAM 引擎行数限制以及机器文件大小限制
3. 这玩意对有 super 权限的账号无效
4. 开了这玩意, accesslog 出现任何问题, 都会导致无 super 权限账号无法连接
5. 留着 root 这么个账号, 还开连接审计有点多此一举, 即使 root 账号有密码
xfwduke
2015-06-26 19:15:14 +08:00
另外再补充点
开这个东西, 一般都是做行为审计分析, 要结合 mysql 的 slow query log 和 binary log

依稀记得 mysql 的 slow query log 默认是没有 connect id 这个东西的, 新版本 mysql 有没有改不确认了. 如果没有就需要自己 patch 代码
同样 binary log 也需要 connect id, 这个我记得好像是有的
Mztck
2015-07-01 09:42:42 +08:00
是的。这种方法最多也就自己用来玩玩。想要真正打开需要准备许多东西。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/201094

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX