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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用mysql注释实现无硬件成本的审计功能相关的知识,希望对你有一定的参考价值。

目前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注释实现无硬件成本的审计功能的主要内容,如果未能解决你的问题,请参考以下文章

一款简易低成本智能割草机的制作——硬件篇

mysql利用init-connect增加访问审计功能的实现

硬件产品核心要素

CentOS 7中搭建KVM虚拟化平台

一种低成本的基于Python3的HIS负载均衡研究

Centos7中搭建KVM虚拟化平台