导读:
MySQL社区版是不带审计功能的,如果要使用MySQL审计,可以考虑使用中间件(例如proxysql)或者是MariaDB的审计插件。这里以MariaDB的审计插件为例,实现MySQL 5.7的审计功能。
 
版本信息
操作系统版本               :CentOS 7.4
MySQL数据库版本       :MySQL 5.7.27 社区版
MariaDB审计插件版本 :1.4.0
 
Note:
1.MariaDB审计插件一直在更新,不同版本的审计插件功能也不同,每个版本的功能见:https://mariadb.com/kb/en/mariadb-audit-plugin-options-and-system-variables/#server_audit_file_rotate_now
2.我们在给MySQL数据库安装审计插件时,需要从MariaDB里面拷贝审计插件。MariaDB版本与审计插件版本关系如下:https://mariadb.com/kb/en/mariadb-audit-plugin-versions/
3.MySQL版本与审计插件版本没有特别的联系,建议下载最新。
 
 
(一)下载安装
直接下载MariaDB的二进制安装包,下载链接如下:
下载完成之后,解压安装包。然后到plugin路径下,该路径是MariaDB存储插件的地方:
mariadb-10.1.23-linux-x86_64/lib/plugin

在该路径下存在 server_audit.so 文件,将其拷贝到MySQL服务器上。

 在MySQL数据库上查看其插件存放路径,如下:
mysql> show variables like 'plugin_dir';
+---------------+------------------------------+
| Variable_name | Value |
+---------------+------------------------------+
| plugin_dir | /usr/local/mysql/lib/plugin/ |
+---------------+------------------------------+

将MariaDB的审计插件server_audit.so存放到该路径下

[root@pro1 plugin]# ll
...
-rw-r--r--. 1 root root 176810 Jan 7 16:17 server_audit.so
... # 修改插件权限
[root@pro1 plugin]# chown mysql:mysql server_audit.so
[root@pro1 plugin]# chmod 755 server_audit.so
[root@pro1 plugin]# ll
...
-rwxr-xr-x. 1 mysql mysql 176810 Jan 7 16:17 server_audit.so
...

进入数据库安装插件

mysql> INSTALL PLUGIN server_audit SONAME 'server_audit.so';
Query OK, 0 rows affected (0.00 sec)

安装之后,可以看到数据库插件了

mysql> show plugins ;
+----------------------------+----------+--------------------+-----------------+---------+
| Name | Status | Type | Library | License |
+----------------------------+----------+--------------------+-----------------+---------+
...
| SERVER_AUDIT | ACTIVE | AUDIT | server_audit.so | GPL |
+----------------------------+----------+--------------------+-----------------+---------+
(二)审计配置
审计配置即修改参数信息即可,需要注意的是最好将其放入MySQL的参数文件(my.cnf),如果仅在数据库层面做修改,数据库重启后参数将失效。
mysql> show variables like '%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 | |
| 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 |
+-------------------------------+-----------------------+

这里罗列了重点参数的含义:

我的最终配置如下:

mysql> show variables like '%audit%';
+-------------------------------+-----------------------+
| Variable_name | Value |
+-------------------------------+-----------------------+
| server_audit_events | CONNECT |
| server_audit_excl_users | |
| server_audit_file_path | server_audit.log |
| server_audit_file_rotate_now | OFF |
| server_audit_file_rotate_size | 100000000 |
| server_audit_file_rotations | 9 |
| server_audit_incl_users | |
| server_audit_loc_info | |
| server_audit_logging | ON |
| 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 |
+-------------------------------+-----------------------+
(三)审计日志解析
一行代表一条完成的审计日志,日志中的字段用逗号分隔。各种事件将产生不同的审计记录,这些记录的格式个各不相同。根据审计事件,主要分为3类:
(3.1)连接审计
主要审计连接数据库、断开连接、连接失败等操作,其日志格式如下:
[timestamp],[serverhost],[username],[host],[connectionid],0,CONNECT,[database],,0
[timestamp],[serverhost],[username],[host],[connectionid],0,DISCONNECT,,,0
[timestamp],[serverhost],[username],[host],[connectionid],0,FAILED_CONNECT,,,[retcode]

(3.2)查询审计

即审计select语句,其日志格式如下:
[timestamp],[serverhost],[username],[host],[connectionid],[queryid],QUERY,[database],[object], [retcode]

(3.3)表相关审计

如果审计开启TABLE事件,则会审计创建、删除、重命名表等操作,日志格式如下:
[timestamp],[serverhost],[username],[host],[connectionid],[queryid],CREATE,[database],[object],
[timestamp],[serverhost],[username],[host],[connectionid],[queryid],READ,[database],[object],
[timestamp],[serverhost],[username],[host],[connectionid],[queryid],WRITE,[database],[object],
[timestamp],[serverhost],[username],[host],[connectionid],[queryid],ALTER,[database],[object],
[timestamp],[serverhost],[username],[host],[connectionid],[queryid],RENAME,[database], [object_old]|[database_new].[object_new],
[timestamp],[serverhost],[username],[host],[connectionid],[queryid],DROP,[database],[object],
 【完】

MySQL审计audit的更多相关文章

  1. MySQL审计工具Audit Plugin安装使用

    本实验的审计插件均是安装在 mysql-community-server-5.7.9 的服务器上. 插件安装(社区版) 插件下载地址: https://bintray.com/mcafee/mysql ...

  2. mysql审计实现方法

    Mysql版本: 5.6.24-72.2 一.通过init-connect + binlog 实现MySQL审计功能 基本原理: 由于审计的关键在于DML语句,而所有的DML语句都可以通过binlog ...

  3. 配置Mysql审计

    mysql-audit.json:Mysql审计日志 插件下载地址: https://bintray.com/mcafee/mysql-audit-plugin/release/1.1.4-725#f ...

  4. 关于Mysql Enterprise Audit plugin的使用

    正如之前看到的一篇文章,假设想要知道是谁登陆了你的数据库server,干了什么东西,那么你须要使用Mysql Enterprise Audit plugin. 以下介绍一下Mysql Enterpri ...

  5. mysql审计插件-记录所有sql语句

    https://www.58jb.com/html/160.html https://www.jianshu.com/p/a0e0aec3cb6f MySQL审计工具Audit Plugin安装使用 ...

  6. [Oracle]审计Audit

    1.Audit的概念 Audit是监视和记录用户对数据库进行的操作,以供DBA进行问题分析.利用Audit功能,可以完成以下任务: 监视和收集特定数据库活动的数据.例如管理员能够审计哪些表被更新,在某 ...

  7. Ubuntu下rsyslog集中收集mysql审计日志

    服务端 1.安装最新版本rsyslog sudo apt-get install software-properties-common python-software-properties sudo ...

  8. maridb安装审计audit插件

    1.下载插件 https://mariadb.com/kb/en/mariadb-audit- plugin/ 比较新的mariadb版本audit插件直接内嵌在版本里,可以直接安装 INSTALL ...

  9. 使用MySQL审计Plugin

    本文来源:http://blog.chinaunix.net/uid-20785090-id-5018977.html 越来越多的企业把应用往mysql上迁移,这时候对数据库的审计又成了一件紧急的事情 ...

随机推荐

  1. 学习JUC源码(2)——自定义同步组件

    前言 在之前的博文(学习JUC源码(1)--AQS同步队列(源码分析结合图文理解))中,已经介绍了AQS同步队列的相关原理与概念,这里为了再加深理解ReentranLock等源码,模仿构造同步组件的基 ...

  2. Django认证系统并不鸡肋反而很重要

    在使用django-admin startproject创建项目后,Django就默认安装了一个采用session实现的认证系统.这是Django相比于其他框架的一大特点:自带认证系统,开箱即用.有人 ...

  3. Springboot mini - Solon详解(六)- Solon的校验框架使用、定制与扩展

    Springboot min -Solon 详解系列文章: Springboot mini - Solon详解(一)- 快速入门 Springboot mini - Solon详解(二)- Solon ...

  4. Java8的Lambda表达式,你会不?

    目录 理解Lambda 基础语法 函数式接口 常用的函数式接口 消费型接口 供给型接口 断言型接口 函数型接口 方法引用 数组引用 构造器引用 总结 参考阅读 理解Lambda Lambda表达式可以 ...

  5. Unity 3D里相机的平滑跟随(转)

    1 using System.Collections; 2 using System.Collections.Generic; 3 using UnityEngine; 4 public class ...

  6. NFS文件共享服务器搭建

    环境准备 centos 7.x+ 两台 192.168.40.128(用作NFS服务端) 192.168.40.129(用作NFS客户端) NFS服务端部署(192.168.40.128 机器上面执行 ...

  7. JVM虚拟机(一):类加载机制

    类加载的时机   类加载的生命周期为: 加载.验证.准备.解析.初始化.使用.卸载七个阶段,其中验证.准备.解析三个阶段统称为连接.其中加载与连接时交叉执行的. 类必须初始化的六种情况 遇到new.g ...

  8. jmeter处理加密接口

    jmeter处理加密接口 普及知识点: 我们常见的加密方式有:(RSA .AES.MD5.secret) 如下四种情况: 1.请求加密.响应加密 2.请求不加密.响应加密 4.请求加密.响应不加密 5 ...

  9. WIN7环境下配置vscode c++环境

    目录 安装vscode 添加中文环境支持 添加c++支持 配置c++环境 安装MinGW 配置MinGW环境变量 配置vscode launch文件配置 task文件配置 可能出现的问题 安装vsco ...

  10. 浅谈 FHQ-Treap

    关于FHQ-Treap             --作者:BiuBiu_Miku 可能需要的前置知识:    一.树形结构的了解:        树形,顾名思义,就是像树一样有很多分叉口,而这里以二叉 ...