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/

  • 相关阅读:
    Visual Studio DSL 入门 11为状态机设计器添加规则
    不平静的2009,期待更不平静的2010
    ASP.NET MVC 2 正式发布
    [翻译] DSL和模型驱动开发的最佳实践(2/4)
    Visual Studio DSL 入门 9创建状态机的图形符号
    Visual Studio DSL 入门 6DSL的图形表示1
    智诚B2C1.31正式发
    一个程序员的创业尝试
    Visual Studio DSL 入门 13结合T4生成代码
    Visual Studio DSL 入门 10完善状态机案例
  • 原文地址:https://www.cnblogs.com/erisen/p/6039512.html
Copyright © 2011-2022 走看看