阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

MySQL audit—SQL审计插件

158次阅读
没有评论

共计 2109 个字符,预计需要花费 6 分钟才能阅读完成。

自从 MySQL5.6 出现以来开始对 json 的支持后,使得在 MySQL 上增加了一些新特性,为此这一点让 MySQL 增加了一些新的插件支持,在这里就说一说 MySQL 的 SQL 审计插件,SQL 审计插件并不是 MySQL 官方的,它是由 macfee 公司基于 percona 开发的,所以,在添加 SQL 审计的插件功能时需要去下载对应版本的 MySQL audit 插件(支持 MariaDB),至于 MySQL 的插件安装比较简单,记得以前有说过 MySQL 的半同步复制功能时,其中的半同步复制也是插件,需要的可以参看:http://www.linuxidc.com/Linux/2017-08/146257.htm
在这里就简要的说一下 MySQL 的 SQL 审计插件 audit 的部署安装使用,首先,需要去 macfee 的官网上下载对应 MySQL/MariaDB 版本的插件,macfee 官网下载地址:https://bintray.com/mcafee/mysql-audit-plugin/release 建议下载最新稳定版,本次使用的是 MySQL5.6

[root@localhost src]# unzip audit-plugin-mysql-5.6-1.1.4-725-linux-x86_64.zip
[root@localhost src]# cd audit-plugin-mysql-5.6-1.1.4-725
# 先进下 MySQL 中看下插件所在的路径
mysql> show variables like ‘%plugin_dir%’;
+—————+——————————+
| Variable_name | Value                        |
+—————+——————————+
| plugin_dir    | /usr/local/mysql/lib/plugin/ |
+—————+——————————+
1 row in set (0.03 sec)
 
[root@localhost audit-plugin-mysql-5.6-1.1.4-725]# cp lib/libaudit_plugin.so /usr/local/mysql/lib/plugin/
[root@localhost audit-plugin-mysql-5.6-1.1.4-725]# cd /usr/local/mysql/lib/plugin
[root@localhost plugin]# chown mysql:mysql libaudit_plugin.so && chmod +x libaudit_plugin.so
# 修改插件的属组和添加权限
[root@localhost plugin]# mysql# 再进 MySQL 中安装插件
mysql> install plugin audit soname ‘libaudit_plugin.so’;
mysql> show global variables like ‘audit%’;
mysql> set global audit_json_file = on;

这样 audit 的插件就安装开启好了,这里还需要格外注意的这样没有关闭 audit 插件功能直接卸载掉 audit 插件,会导致 MySQL 发生错误,比较不安全,所有我们还要再 my.cnf 中添加
plugin-load=AUDIT=libaudit_plugin.so
# 这个参数是严禁在线卸载,写好后重启 MySQL 生效

除此之外在添加以下几行,使 MySQL 重启后 audit 插件生效:
audit_json_file=on
audit_force_record_logins=on
audit_json_file_sync=1

这里有几个参数是需要我们关注的:
audit_json_file
#audit 功能的开关
audit_json_log_file
#audit 的记录文件名,一般记录文件都在 datadir 中
audit_record_cmds
#audit 记录的命令,缺省是空,即记录所有命令,也可以根据实际情况修改,如记录 select 和 insert 的语句:audit_record_cmds=select,insert
audit_record_objs
#audit 记录操作的对象,缺省也是空,记录所有的对象,在这里的对象是指 MySQL 的库,如 audit_record_objs=mysql.*,information_schema.*
audit_whitelist_users
# 白名单,指那些用户的 SQL 语句不做记录

最后要说的是开启 MySQL 的 SQL 审计功能是需要在必要的时候,不然会降低 MySQL 的性能大致 30% 左右,当然如果是条件允许的话是没有问题的,SQL 审计记录下来的内容会以 json 的格式记录在 audit_json_log_file 文件中,平时查阅时可以使用相应的轮替归档管理。

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-08/146256.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-22发表,共计2109字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中