mysql审计插件(运维不再背锅)

李品宽 发布于 2017/11/01 10:40
阅读 1K+
收藏 9

假设这么一个情况,你是某公司mysqldba,某日突然公司数据库中的数据被人为删了。
尽管有数据备份,但是因服务停止而造成的损失上千万,现在公司需要查出那个做删除操作的人。
但是拥有数据库操作权限的人很多,如何排查,证据又在哪?
是不是觉得无能为力?
mysql本身并没有操作审计的功能,那是不是意味着遇到这种情况只能自认倒霉呢?

mysql审计插件弥补了社区版审计插件的空白



mysql审计插件,根据业务需求精心编写的,审计粒度很细,具体用户的具体表的具体操作,操作影响的行数都可以审计,确保数据库安全透明的运行,运维DBA再也不用背锅了。


该插件可以测试使用,不影响数据库性能,
线上数据库请测试环境测试完之后使用,有疑问可以咨询
QQ:67349248

mysql5.6.X.tar.gz到mysql-5.7.8-rc.tar.gz是一个版本----audit5_6_21.so
mysql5.7.9.tar.gz---mysql5.7.11.tar.gz是一个版本----audit5_7_9.so
下载地址如下
http://pan.baidu.com/s/1dFGFCrv


一、查找插件所在位置
mysql> show variables like '%plugin_dir%';
+---------------+------------------------------+
| Variable_name | Value                        |
+---------------+------------------------------+
| plugin_dir    | /usr/local/mysql/lib/plugin/ |
+---------------+------------------------------+
1 row in set (0.00 sec)
二、将audit_版本号.so插件下载后放到plugin_dir位置
    mv audit_版本号.so  audit.so
三、加载插件
install plugin audit  SONAME 'audit.so';
四、卸载插件
uninstall plugin audit;




使用插件
mysql> show variables like '%audit%';
+----------------+----------------------+
| Variable_name  | Value                |
+----------------+----------------------+
| audit_logfile  | /tmp/mysql_audit.log |
| audit_myswitch | OFF                  |
| audit_num      | 0                    |
| audit_sql      | all_sql              |
| audit_user     | all_user             |
+----------------+----------------------+
5 rows in set (0.01 sec)




mysql> 
mysql> set global audit_logfile='/tmp/mysql_audit_1.log';----只读变量,审计仅指定在/tmp/mysql_audit.log文件,保障权限可以写
ERROR 1238 (HY000): Variable 'audit_logfile' is a read only variable




set global audit_sql='delete;select;drop';   -----这些审计关键字用;分开
set global audit_user='user2;user3';         ----审计用户用;隔开
set global audit_num =0;                          ----审计sql影响的最少行数,默认为0
set global audit_myswitch=on|off|ON|OFF|1|0;       -----开启关闭审计

关键字比较可以忽略大小写


查看日志linux下tailf /tmp/mysql_audit.log

root[root] @ localhost [],[2017-10-30 15:08:33],set global audit_myswitch='ON',5
root[root] @ localhost [],[2017-10-30 15:08:41],set global audit_sql='SELECT;drOP',5
root[root] @ localhost [],[2017-10-30 15:08:46],SELECT DATABASE(),5
root[root] @ localhost [],[2017-10-30 15:09:15],selecT *  from t1,3
root[root] @ localhost [],[2017-10-30 15:09:30],create table t3 as select * from t1,3
root[root] @ localhost [],[2017-10-30 15:09:41],DROP table t3,0
root[root] @ localhost [],[2017-11-01 10:07:03],select @@version_comment limit 1,0
root[root] @ localhost [],[2017-11-01 10:35:51],select @@version_comment limit 1,0

加载中
0
yongqqq
yongqqq

感觉不错!

0
laodu
laodu

linux系统哦 

返回顶部
顶部