MySQL/MariaDB安装审计插件开启审计功能

2023年4月28日07:35:14数据库教程评论272 views字数 1512阅读模式

数据库审计是把用户对数据库的操作记录到一个日志文件里面的一个功能。对于安全性要求比较高的网站,需要为数据库开启审计功能以便后期审查。开源的MySQL和MariaDB默认没有安装审计插件,我们需要手动安装以便开启审计功能。

下载安装数据库审计插件

首先,我们需要从 https://github.com/mcafee/mysql-audit 下载数据库审计插件。

确定MySQL插件目录

在服务器上登录MySQL后,运行以下命令,命令输出中的 plugin_dir 就是我们需要确定的MySQL插件目录。

mysql> show global variables like 'plugin_dir';
+---------------+------------------------------+
| Variable_name | Value                        |
+---------------+------------------------------+
| plugin_dir    | /usr/local/mysql/lib/plugin/ |
+---------------+------------------------------+
1 row in set (0.01 sec)

复制审计插件到MySQL插件目录,并赋予适当的权限

[root@centos]/opt# cp /opt/audit/lib/libaudit_plugin.so /usr/local/mysql/lib/plugin/
[root@centos]/opt# chown -R mysql:mysql /usr/local/mysql/lib/plugin/libaudit_plugin.so 

通过MySQL命令安装审计插件

mysql> INSTALL PLUGIN AUDIT SONAME 'libaudit_plugin.so';
Query OK, 0 rows affected (0.42 sec)

如果安装插件时报以下错误,可以尝试用插件安装包中的offset-extract.sh来提取当前数据库的offsets,添加到审计配置中,然后重试。

ERROR 1123 (HY000): Can't initialize function 'AUDIT'; Plugin initialization function failed.

在MySQL配置文件中添加审计配置

[mysqld]
audit_json_file = on
plugin-load=AUDIT=libaudit_plugin.so
audit_record_cmds='insert,delete,update,create,drop,alter,grant,truncate'
audit_json_log_file=/home/mysql/mysql-audit.json
audit_offsets = 8544, 8584, 4064, 5536, 520, 0, 0, 32, 64, 160, 608, 8700, 5168, 4208, 4216, 4220, 6840, 1656, 32, 7800, 7840, 7824, 11624, 140, 664, 320

验证审计插件是否安装成功

安装插件中,重启数据库服务,然后运行 show plugins; 命令插件已安装的插件,如果结果中有AUDIT,说明已经安装成功。

安装审计插件时的注意事项

  • 审计插件对数据库版本的要求比较严格,目前在Ubuntu 22.04上,MySQL 8.0.25 经测试可以安装,其他版本请自行测试。
  • 需要先创建mysql-audit.json审计日志文件,并赋予正确权限后才能记录审计日志
  • 执行 offset-extract.sh 需要先安装 gdb apt install gdb

腾讯云优惠
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/sjk/37636.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定