Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
Mztck
V2EX  ›  Linux

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

  •  
  •   Mztck · Jun 25, 2015 · 3701 views
    This topic created in 4154 days ago, the information mentioned may be changed or developed.

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

    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;

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

    依稀记得 mysql 的 slow query log 默认是没有 connect id 这个东西的, 新版本 mysql 有没有改不确认了. 如果没有就需要自己 patch 代码
    同样 binary log 也需要 connect id, 这个我记得好像是有的
    Mztck
    Mztck
    OP
    Jul 1, 2015
    3
    是的。这种方法最多也就自己用来玩玩。想要真正打开需要准备许多东西。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   545 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:27 · PVG 03:27 · LAX 11:27 · JFK 14:27
    ♥ Do have faith in what you're doing.