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

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

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

好处:

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

实现:

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

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

测试sql如下:

/* benchtestmjq_rw;172.20.1.1 */ 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值