近期,公司要求对MySQL 数据库上操作进行审计;通过了解MySQL 官方企业版(付费版)本中集成了audit_log审计插件,
但是社区开源版本中并不包含该插件,也没提供下载。
进一步了解 MariaDB 有一个名为server_audit.so审计插件,据传以前是可以独立下载的。
但是我在官网没找到下载链接,索性下载一个MariaDB 5.5.50 的二进制安装包,解压后从中捞一个 server_audit.so 文件,

1.登录数据库,查看plugin_dir目录
mysql> SHOW GLOBAL VARIABLES LIKE 'plugin_dir';
+---------------------+-----------------------------------------------------------------------------------------+
| Variable_name     | Value                                                                                                   |
+---------------------+------------------------------------------------------------------------------------------+
| plugin_dir | /usr/local/Percona-Server-5.5.33-rel31.1-566.Linux.x86_64/lib/mysql/plugin/         |
+---------------+------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

2.移动server_audit.so到plugin目录中,然后修改文件授权
mv server_audit.so /usr/local/Percona-Server-5.5.33-rel31.1-566.Linux.x86_64/lib/mysql/plugin/
chown mysql.mysql /usr/local/Percona-Server-5.5.33-rel31.1-566.Linux.x86_64/lib/mysql/plugin/server_audit.so
chmod 755 /usr/local/Percona-Server-5.5.33-rel31.1-566.Linux.x86_64/lib/mysql/plugin/server_audit.so

3、加载安装该插件
mysql> install plugin server_audit SONAME 'server_audit.so';
Query OK, 0 rows affected (0.02 sec)
不需要重启MySQL服务!
mysql> select * from mysql.plugin;
+---------------+--------------------+
| name           | dl                     |
+---------------+--------------------+
| server_audit | server_audit.so  |
+---------------+--------------------+
1 row in set (0.00 sec)

另一种安装方法是修改配置,需要重启mysql服务才能生效
[mysqld]
plugin-load=server_audit=server_audit.so
重启MySQL服务!
这种安装方式不会在 mysql.plugin 生成记录
mysql> select * from mysql.plugin;
Empty set (0.00 sec)

4.查看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_loc_info            | OOOOOOOOOO           |
| server_audit_logging             | OFF                           |
| server_audit_mode               | 1                               |
| server_audit_output_type      | file                            |
| server_audit_query_log_limit | 1024                          |
| 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)

5.在数据库上执行查询操作,即可在server_audit.log 中看到详细的记录信息,server_audit.log文件默认位于datadir 目录下

20160811 16:11:40,ouzhou158,root,localhost,1872,7,QUERY,,'SHOW GLOBAL VARIABLES LIKE \'plugin_dir\'',0

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

关于审计相关的选项说明,可以参考下面的链接
https://mariadb.com/kb/en/mariadb/server_audit-system-variables/

MySQL Percona server 5.5 安装审计插件的更多相关文章

  1. MySQL(Percona Server) 5.6 主从复制

    MySQL(Percona Server) 5.6.15 主库:192.168.2.21 从库:192.168.2.22 例如我们同步的数据库为:test. 如果需要同步多个数据库下面会有说明. My ...

  2. Percona Server 5.6 安装TokuDB

    系统:Red Hat Enterprise Linux Server release 6.3 (Santiago) 数据库:Percona-Server-5.6.29-rel76.2-Linux.x8 ...

  3. MySQL Community Server 5.7安装详细步骤

    mysql社区版安装配置步骤较繁琐,几经搜索之后才成功安装,此文将所有的安装步骤及安装过程中遇到的问题进行了总结 1. 下载MySQL社区版     最新版下载地址:https://dev.mysql ...

  4. 利用开源审计插件对mysql进行审计

    转载于互联网 2017年06月02日MySQL社区版本最新版为MySQL_5.7.18,但是该版本不带AUDIT功能(MySQL Enterprise Edition自带AUDIT功能),因此需要加载 ...

  5. Linux 下 YUM 安装 Percona Server 5.6

    Percona Server 是 MySQL 的衍生版,专注于 Linux/BSD 下 MySQL 数据库服务器的改进, 在功能和性能上较 MySQL 有着显著的提升. Percona Server ...

  6. MySQL Study之--Percona Server版本号

    MySQL Study之--Percona Server版本号 1.简单介绍      Percona 为 MySQL 数据库server进行了改进.在功能和性能上较 MySQL 有着非常显著的提升. ...

  7. percona 5.6的安装

    yum 安装, 1 如果已经安装过mysql 的东西,先卸载了.yum remove mysql* 包括 /etc/my.cnf 这个东西卸载的时候不会删除. mv /etc/my.cnf /etc/ ...

  8. mysql 5.7/percona server/mariadb 10.2安装与服务器参数优化

    建议使用percona server linux generic版,从https://www.percona.com/downloads/Percona-Server-LATEST/下载,现在不在推荐 ...

  9. mysql添加mcafee 审计插件

    插件源码地址https://github.com/mcafee/mysql-audit插件安装方法https://github.com/mcafee/mysql-audit/wiki/Installa ...

随机推荐

  1. LODOP打印当前日期时间的方法

    JS方法直接获取.之前有个详细介绍的博文:LODOP打印用JS获取的当前日期本文也再演示一下,详细介绍见上面链接的博文,该方法此文不做详细介绍. 本文有三段:1.JS获取日期,2,.LODOP的FOR ...

  2. 前端知识之jQuery

    通过 jQuery,您可以选取(查询,query) HTML 元素,并对它们执行"操作"(actions). http://www.runoob.com/jquery/jquery ...

  3. Python_001_开始学习的一些准备

    从Hello World!开始,希望你能坚持一下,然后每一天有一点收获. ♥   安装了pip和setuotools库: pip用于安装管理Python扩展包,setuptools用于分布Python ...

  4. loadrunner断言多结果返回

    有这么一个场景,接口返回的多个状态都是正常的,那么在压测的时候,断言就需要多 init里面执行登录,根据返回获取到tokenId action中,执行登录后的操作,获取响应返回的状态,把正确的状态个数 ...

  5. 【CTSC2016】时空旅行

    链接 http://uoj.ac/problem/198 题解 首先要发现答案要我们求这个式子: \[ ans=min\bigl((x_i-x)^2+c_i\bigr) \] 显而易见的是这种时空嫁接 ...

  6. anacodna/python 安装 tensorflow

    study from : https://www.cnblogs.com/HongjianChen/p/8385547.html 执行1-6 7 安装jupyter 每次使用tensorflow,都要 ...

  7. 课下作业MyCP的分析

    目录 MyCP 题目 截图 代码 相关知识 出现的问题 代码托管 参考资料 MyCP 题目 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: ja ...

  8. 分类器的评价指标-ROC&AUC

    ROC 曲线:接收者操作特征曲线(receiver operating characteristic curve),是反映敏感性和特异性连续变量的综合指标,roc 曲线上每个点反映着对同一信号刺激的感 ...

  9. python中__init__和__new__的区别

    参考:https://my.oschina.net/liuyuantao/blog/747164 python中__metaclass的详解 参考:https://www.cnblogs.com/ia ...

  10. 关于ajax的与后台Controller的交互 后台拿不到值

    话不多说 上代码 这是前段js的代码        传的两个参数    cLassid  和  userid $.ajax({ type:"post", url:"../ ...