2017年06月02日MySQL社区版本最新版为MySQL_5.7.18,但是该版本不带AUDIT功能(MySQL Enterprise Edition自带AUDIT功能),

因此需要加载plugin(第三方插件),当前插件有以下几种:

1、MySQL Enterprise Audit Plugin – This plugin is not open source and is only available with MySQL Enterprise, which has a significant cost attached to it. It is the most stable and robust.

备注:MySQL企业版本才能使用这个audit插件哦,MySQL社区版慢慢等着吧

2、Percona Audit Log Plugin – Percona provides an open source auditing solution that installs with Percona Server 5.5.37+ and 5.6.17+. This plugin has quite a few output features as it outputs XML, JSON and to syslog. Percona’s implementation is the first to be a drop-in replacement for MySQL Enterprise Audit Plugin. As it has some internal hooks to the server to be feature-compatible with Oracle’s plugin, it is not available as a standalone for other versions of MySQL. This plugin is actively maintained by Percona.

备注:人家说了,我这个插件只能给Percona_sever使用,我Percona来维护

3、McAfee MySQL Audit Plugin – Around the longest and has been used widely. It is open source and robust, while not using the official auditing API. It isn’t updated as often as one may like. There hasn’t been any new features in some time. It was recently updated to support MySQL 5.7

下载地址:http://dl.bintray.com/mcafee/mysql-audit-plugin/

部署可参考:http://blog.csdn.net/bzfys/article/details/53695855

个人发现该插件貌似不支持审计日志自动切割,而且日志格式为JSON格式,个人感觉不易查看,以及时间格式需要转换

eg:"msg-type":"header","date":"1494935783266","audit-version":"1.1.4-707","audit-protocol-version":"1.0","hostname":"salt-master","mysql-version":"5.7.18-log","mysql-program":"/usr/sbin/mysqld","mysql-socket":"/data/mysql/mysql.sock","mysql-port":"3306","server_pid":"43480"}

4、MariaDB Audit Plugin – The only plugin that claims to support MySQL, Percona Server and MariaDB. It is open source and constantly upgraded with new versions of MariaDB. Versions starting at 1.2 are most stable, and it may be risky to use versions below that in your production environment. Versions below 1.2 may be unstable and I have seen it crash production servers. Older versions also log clear text passwords.

下载地址:https://mariadb.com/kb/en/mariadb/about-the-mariadb-audit-plugin/ (可以直接下载MariaDB对应的版本后,解压后在plugin目录下有server_audit.so插件)

MariaDB_5.5.37版本和MariaDB_10.0.10以后版本的audit插件支持MariaDB, MySQL、Percona Server使用

备注:MariaDB_5.x.x和MariaDB_10.x.x区别

MariaDB_5.x.x:兼容MySQL5.x.x的,接口几乎一致,只限于社区版

MariaDB_10.x.x:10.x.x使用新技术,接口会与mysql逐渐区别开来。目标就是以后想MariaDB新接口过渡

因此综合以上,我个人选择了MariaDB Audit Plugin按安装到我的MySQL_5.7.18上,以下为具体部署操作:

1、下载mariadb-5.5.56-linux-x86_64.tar.gz解压获取server_audit.so插件

2、登录MySQL,执行命令获取MySQL的plugin目录

mysql> SHOW GLOBAL VARIABLES LIKE 'plugin_dir';

+---------------+--------------------------+

| Variable_name | Value |

+---------------+--------------------------+

| plugin_dir | /usr/lib64/mysql/plugin/ |

+---------------+--------------------------+

1 row in set (0.02 sec)

3、将server_audit.so上传到 /usr/lib64/mysql/plugin/下

4、在命令下安装server_audit.so

mysql> INSTALL PLUGIN server_audit SONAME 'server_audit.so';

5、查看变量开启设置情况,默认貌似都是关闭的

mysql> show variables like '%audit%';

6、编辑my.cnf,添加配置

server_audit_events='CONNECT,QUERY,TABLE,QUERY_DDL,QUERY_DML,QUERY_DCL'

备注:指定哪些操作被记录到日志文件中

server_audit_logging=on

server_audit_file_path =/data/mysql/auditlogs/

备注:审计日志存放路径,该路径下会生成一个server_audit.log文件,就会记录相关操作记录了

server_audit_file_rotate_size=200000000

server_audit_file_rotations=200

server_audit_file_rotate_now=ON

7、重启服务,service mysqld restart

登录MySQL后发现,在MySQL环境下执行的任何命令都被记录到/data/mysql/auditlogs/server_audit.log,如果日志文件达到指定的大小,会自动切割

mysql> show variables like '%audit%';

+-------------------------------+---------------------------------------------------+

| Variable_name | Value |

+-------------------------------+---------------------------------------------------+

| server_audit_events | CONNECT,QUERY,TABLE,QUERY_DDL,QUERY_DML,QUERY_DCL |

| server_audit_excl_users | |

| server_audit_file_path | /data/mysql/auditlogs/ |

| server_audit_file_rotate_now | ON |

| server_audit_file_rotate_size | 200000000 |

| server_audit_file_rotations | 200 |

| 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 |

+-------------------------------+---------------------------------------------------+

日志为:

20170516 23:21:23,salt-master,audit_log_user,localhost,4,19,QUERY,,'show variables like \'%audit%\'',0

8、参数说明:

详细请参考:https://mariadb.com/kb/en/mariadb/server_audit-system-variables/

server_audit_output_type:指定日志输出类型,可为SYSLOG或FILE

server_audit_logging:启动或关闭审计

server_audit_events:指定记录事件的类型,可以用逗号分隔的多个值(connect,query,table),如果开启了查询缓存(query cache),查询直接从查询缓存返回数据,将没有table记录

server_audit_file_path:如server_audit_output_type为FILE,使用该变量设置存储日志的文件,可以指定目录,默认存放在数据目录的server_audit.log文件中

server_audit_file_rotate_size:限制日志文件的大小

server_audit_file_rotations:指定日志文件的数量,如果为0日志将从不轮转

server_audit_file_rotate_now:强制日志文件轮转

server_audit_incl_users:指定哪些用户的活动将记录,connect将不受此变量影响,该变量比server_audit_excl_users优先级高

server_audit_syslog_facility:默认为LOG_USER,指定facility

server_audit_syslog_ident:设置ident,作为每个syslog记录的一部分

server_audit_syslog_info:指定的info字符串将添加到syslog记录

server_audit_syslog_priority:定义记录日志的syslogd priority

server_audit_excl_users:该列表的用户行为将不记录,connect将不受该设置影响

server_audit_mode:标识版本,用于开发测试

9、卸载server_audit

mysql> UNINSTALL PLUGIN server_audit;

mysql> show variables like '%audit%';

Empty set (0.00 sec)

防止server_audit 插件被卸载,需要在配置文件中添加:

[mysqld]

server_audit=FORCE_PLUS_PERMANENT

重启MySQL生效

值得注意的是,应该在server_audit插件被安装好,并且已经运行之后添加这些配置,否则过早在配置文件添加这个选项,会导致MySQL发生启动错误!

mysql> UNINSTALL PLUGIN server_audit;

ERROR 1702 (HY000): Plugin 'server_audit' is force_plus_permanent and can not be unloaded

mysql audit 表_关于MySQL AUDIT(审计)那点事相关推荐

  1. mysql 截断表_入门MySQL——基础语句篇

    前言: 前面几篇文章,我们介绍了MySQL的基础概念及逻辑架构.相信你现在应该有了自己的一套MySQL环境,接下来我们就可以开始练习MySQL了.本文将从MySQL最基础的语句出发,为你展示出创建及修 ...

  2. mysql打开表_查看mysql中的表,以及操作

    第一步 还是先开启mysql 然后登录mysql,如果还不会这两部的 大佬 请看上一篇博客 谢谢 第二部  输入命令 show databases: 查看该数据库下有哪些库(注意这里 show dat ...

  3. mysql爆表_十种Mysql报错注入

    一. and (select 1 from (select count(*),concat(user(),floor(rand(0)*2))x from information_schema.tabl ...

  4. MySQL学习笔记_关于MySQL的字符类型VARCHAR长度知识总结

    MySQL学习笔记_关于MySQL的字符类型VARCHAR长度知识总结 一.VARCHAR存储和行长度限制 1.VARCHAR(N)中,N指的是字符的长度,VARCHAR类型最大支持65535,指的是 ...

  5. mysql账目表_数据库1(数据库、表及表数据、SQL语句)

    01数据库概念 A: 什么是数据库 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来, 用户可以对数据库中的数据进行增加,修改,删除及查询操作. B: 什么是数据库管理 ...

  6. mysql auto_increment建表_在mysql表中创建一个ID auto_increment(在事实之后)

    小编典典 例如,这是一个具有主键但不是的表AUTO_INCREMENT: mysql> CREATE TABLE foo ( id INT NOT NULL, PRIMARY KEY (id) ...

  7. delete mysql 大表_无语了,直到今天,我才揪出MySQL磁盘消耗迅猛的“真凶”!

    作者:dbapower 链接:https://blog.51cto.com/suifu/2135599 背景 Part1:写在最前 当一张单表10亿数据量的表放在你面前,你将面临着什么? Part2: ...

  8. mysql数据库管理维护_(转)Mysql数据库管理 表的维护

    原文:http://t.dbdao.com/archives/mysql%E6%95%B0%E6%8D%AE%E5%BA%93%E7%AE%A1%E7%90%86-%E8%A1%A8%E7%9A%84 ...

  9. mysql shell 所有表_删除mysql数据库中所有表的shell脚本

    分享一个可以删除mysql中所有表的shell脚本,代码如下: 复制代码 代码示例: #!/bin/bash # 删除mysql中所有表 # 示例: # Usage: ./script user pa ...

最新文章

  1. 达观数据于敬:个性化推荐系统实践
  2. 数学图形(1.46)高次方程曲线
  3. php curl 代理ip访问url
  4. vue-router 按需加载
  5. 心理医生给女人的忠告
  6. java ssdb查询_java连接ssdb数据库
  7. JAVA自学作业02
  8. 20165237 2017-2018-2 《Java程序设计》第8周学习总结
  9. JDK使用VolatileImage可以有效改进刷屏
  10. 深度学习之经典卷积神经网络的技术浅析 | 硬创公开课预告
  11. set nocount on的疑问 set nocount on作用 set nocount on什么意思
  12. word自带公式编辑_原来有这样几种方式打开Word中的公式编辑器
  13. 错过直播不用急,回顾小视科技工业级静默活体检测算法解读,视频已备好
  14. 【前端——Node.js】:Express、数据库与身份认证
  15. 跟着猴博士复试概率论(第二部分)
  16. HDU 5952 Counting Cliques(2016ACM/ICPC亚洲区沈阳站-重现赛)
  17. 这么骚的SQL进阶技巧,不怕被揍么?
  18. python画大象_Python Day21
  19. js计算给定日期顺延工作日后的日期
  20. 量化投资学习-8:庄家与散户是一场猫抓老鼠的游戏

热门文章

  1. 2022华中杯、五一竞赛赛事备战
  2. 1833 雪糕的最大数量
  3. 再读《谁动了我的奶酪》
  4. 我弟今年高考,报的志愿是电子信息,到现在录取的是计算机科学与技术,哪个专业更好一些,2021年电子信息科学与技术专业大学排名及分数线【统计表】...
  5. 电脑用户名中文改英文步骤总结
  6. 【提问的智慧】-[How To Ask Questions The Smart Way]
  7. 用户账号-用户标识符:UID与GID
  8. C++ 左值引用和右值引用
  9. 小技巧|CSS如何实现文字两端对齐
  10. 浅谈仪器控制【1.Python与Labview/Labwindows】