zoukankan      html  css  js  c++  java
  • 使用MySQL审计Plugin

    本文来源:http://blog.chinaunix.net/uid-20785090-id-5018977.html

        越来越多的企业把应用往mysql上迁移,这时候对数据库的审计又成了一件紧急的事情.
    mysql社区版本身不带有审计功能,而官方提供的审计plugin在企业版才有提供。通过
    gerneral log或是slow query log又不能满足需要,很多有实力的公司转而自行开发或是
    使用第三方提供的plug,本文介绍的是使用marindb提供的plugin.

        MariaDB Audit Plugin在percona,mysql的版本上都能够很好的运行,笔者测试5.5和5.6
    都能够稳定支持 ,audit plugin使用的是1.2的版本

     mysql> show global variables like '%plugin_dir%';
    +---------------+------------------------------------+
    | Variable_name | Value                              |
    +---------------+------------------------------------+
    | plugin_dir    | /usr/local/mysql/lib/mysql/plugin/ |
    +---------------+------------------------------------+

    拷贝server_audit.so到plugin目录中,然后安装plugin

    mysql> install plugin server_audit soname 'server_audit.so';
    Query OK, 0 rows affected (0.02 sec)

    查看server_audit的相关变量


    mysql> show global variables like '%server_audit%';
    +-------------------------------+-----------------------+
    | Variable_name                 | Value                 |
    +-------------------------------+-----------------------+
    | server_audit_events           |                       |
    | server_audit_excl_users       |                       |
    | server_audit_file_path        | server_audit.log      |
    | server_audit_file_rotate_now  | OFF                   |
    | server_audit_file_rotate_size | 1000000               |
    | server_audit_file_rotations   | 9                     |
    | server_audit_incl_users       |                       |
    | server_audit_logging          | OFF                   |
    | server_audit_mode             | 1                     |
    | server_audit_output_type      | file                  |
    | server_audit_syslog_facility  | LOG_USER              |
    | server_audit_syslog_ident     | mysql-server_auditing |
    | server_audit_syslog_info      |                       |
    | server_audit_syslog_priority  | LOG_INFO              |
    +-------------------------------+-----------------------+
    14 rows in set (0.00 sec)


    server_audit_logging定义是否开启,server_audit_events定义了相关事件
    常用审计事件有CONNECTION,QUERY,TABLE,QUERY_DDL,QUERY_DML


    假设现在需要审计查询执行情况.

    mysql> set global server_audit_events='QUERY';
    Query OK, 0 rows affected (0.00 sec)

    mysql> set global server_audit_LOGGING='ON';
    Query OK, 0 rows affected (0.00 sec)


    mysql> select count(*) from db1.t1;
    +----------+
    | count(*) |
    +----------+
    |        0 |
    +----------+
    1 row in set (0.03 sec)

    在server_audit.log中输出以下条目
    20150509 13:07:05,c12.fb.com,root,localhost,2,1,QUERY,,'select count(*) from db1.t1',0

    分别对应时间,服务器名,发布sql的用户名,主机,连接号,操作类型,语句文本和查询执行是否成功

    详情可以参考https://mariadb.com/kb/en/mariadb/about-the-mariadb-audit-plugin/

  • 相关阅读:
    十款最实用的Android UI设计工具
    tom大叔blog--------深入理解javascript系列-----------笔记
    右键
    指尖下的js —— 多触式web前端开发之三:处理复杂手势
    关于移动端点击后出现闪或者黑色背景
    修改wamp的WWW目录
    Unicode中文排序
    jquery 小记
    pageX,clientX,offsetX,layerX的区别
    为什么 ["1", "2", "3"].map(parseInt) 返回 [1,NaN,NaN]?【转】
  • 原文地址:https://www.cnblogs.com/erisen/p/6039512.html
Copyright © 2011-2022 走看看