码迷,mamicode.com
首页 > 数据库 > 详细

利用mysql注释实现无硬件成本的审计功能

时间:2019-08-18 00:28:44      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:操作   sql   nts   mysql语句   数据   enc   异常   开启   bin   

目前mysql审计功能,大都是通过开启审计插件或者在中间件上吐出日志记录到相应的存储设备上,是可以实现审计功能的,但这些方法都需要额外的存储成本,对于体谅大的公司,也是一笔部小的开销.

目前我们维护的中间件系统,需要具有审计功能,最初的想法是将sql及操作来源记录到第三方系统,但是考虑成本问题.本人想到了利用mysql的注释功能,将操作的来源加入到mysql语句中,这样也实现了一定的审计功能呢.

好处:

  1. 注释的sql会记录到binlog(增,删,改操作),慢日志(操过指定时长的全部sql),全日制(当开启时),无须单独的存储空间.
  2. 周期为日志文件的保留时间,一般公司的二进制日志会保留稍长一段时间,一般异常情况下,也会通过binlog查找业务的异常,这样,也把操作的来源能够找到,更方便定位问题.

实现:

此种做法一般需要公司有中间件,在中间件加入审计相关的注释,无需应用端做任何改造

修改公司的基础包,类似引入公共java包类似的基础包,操作数据库时,直接将相关信息加进去.

测试sql如下:

/* benchtestmjq_rw;172.28.69.122 */ update t1 set id=1000 where id=6

默认情况下利用mysql客户端是没有效果的,因为mysql客户端默认将注释去掉.

需要这样操作,因为comments参数是默认关闭的:

# mysql --help | grep comments

  -c, --comments      Preserve comments. Send comments to the server. The

                      default is --skip-comments (discard comments), enable

                      with --comments.

comments                          FALSE

# mysql  -c  -uroot -p123456

利用mysql注释实现无硬件成本的审计功能

标签:操作   sql   nts   mysql语句   数据   enc   异常   开启   bin   

原文地址:https://blog.51cto.com/11142614/2430323

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!