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 Framework 学习(八):屏幕刷新机制
    Android Framework 学习(七):Service启动原理
    Android Framework 学习(六):UI线程概念
    Android Framework 学习(五):Activity 启动流程
    Android Handler 机制(六):如何检测性能卡顿
    Android Handler 机制(五):ThreadLocal的工作原理
    Android Framework 学习(四):Binder机制与代理模式
    Android Framework 学习(三):Android 跨进程通信机制
    Android Handler 机制(四):屏障消息(同步屏障)
    Android Handler 机制(三):Handler 机制与管道 Pipe 机制
  • 原文地址:https://www.cnblogs.com/erisen/p/6039512.html
Copyright © 2011-2022 走看看