MariaDB日志审计 帮你揪出内个干坏事儿的小子

wKioL1ftzG_xgjEqAAA6K0SjNFA658.jpg

MariaDB日志审计 帮你揪出内个干坏事的小子

Part1:谁干的?数据库

作DBA的常常会遇到,一些表被误操做了,被truncate、被delete、甚至被drop。引发这方面的缘由大多数都是由于人为+权限问题致使的。一些公共帐户,例如ceshi帐户,全部的人均可以进行操做,由这些公共帐户引发的误操做,你在办公室大喊:谁把个人表删了?8成不会有人回应你。ide


审计日志功能,该技术主要在MariaDB10.0/10.1和Percona 5.6版本里实现。该功能在MySQL5.6/5.7企业版里也支持。本文主要介绍和演示MariaDB10.1中如何开启审计日志,帮你揪出内个干坏事儿的小子~ui


Part2:构建环境spa

本文中,咱们采用的MariaDB版本为10.1.16,固然用其余版本的MariaDB亦可,如何安装MariaDB数据库环境本文不作赘述,若是须要的可移步:插件

http://suifu.blog.51cto.com/9167728/1830575 日志


下面介绍在MariaDB10.1.16中,安装审计Audit Plugin插件的方法orm

在MariaDB数据库中执行以下命令:server

NSTALL PLUGIN server_audit SONAME 'server_audit.so';blog

具体代码以下图所示。get

wKioL1fsYOqyR4VhAAD9zQVbwLs526.jpg


Warning:警告

这里值得注意的是,server_audit.so名字不是随意取的,由于它会读/usr/local/mariadb/lib/plugin目录下的文件,若是说将其给明为mariadb-audit.so,就会抛出以下错误,由于plugin目录下没有该文件。

wKioL1fsYb2iSN-9AAEgvCrxd6w821.jpg


Part2:参数解释

server_audit_events='CONNECT,QUERY,TABLE'表示惠济路连接进来的IP、用户名和表的DML/DDL/DCL操做。

server_audit_logging=ON 表示开启审计日志服务。

server_audit_excl_users=helei 表示只记录helei用户的全部操做。

server_audit_file_rotate_size=1G 表示超过定义的1GB,日志会自动轮训。

server_audit_file_path=server_audit.log 表示审计日志的路径。


更多相关参数能够利用show variables like 'server_audit%';来查看,以下图所示。

wKioL1fsYyzyL37_AAF7wyAmOiM317.jpg


Part3:开启相关参数

server_audit_events、server_audit_logging等参数均为全局动态参数,能够直接在数据库更改,命令以下:

set global server_audit_events='CONNECT,QUERY,TABLE';

set global server_audit_logging=ON;

wKiom1fsZH7CliSlAAHhMBHs5Ho029.jpg



Part4:检查效果

在开启相关参数后,无需重启数据库,可直接看到相关的操做已经被记录到server_audit.log ,以下图所示。

wKioL1fsZSOgGtCZAALxEbz5bss436.jpg



——总结——

自从有了审计功能,妈妈不再用担忧我找不到“坏人”啦。因为笔者的水平有限,编写时间也很仓促,文中不免会出现一些错误或者不许确的地方,不妥之处恳请读者批评指正。

相关文章
相关标签/搜索