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/

  • 相关阅读:
    2019.03.20 mvt,Django分页
    2019.03.18 连接my sql
    第三方包
    飞机大战完结篇
    Python复习基础篇
    final、权限、内部类
    接口、多态
    继承、super、this、抽象类
    String类、static、Arrays类、Math类
    Scanner类、Random类、ArrayList类
  • 原文地址:https://www.cnblogs.com/erisen/p/6039512.html
Copyright © 2011-2022 走看看