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

2023年 7月 10日 73.2k 0

数据库审计是把用户对数据库的操作记录到一个日志文件里面的一个功能。对于安全性要求比较高的网站,需要为数据库开启审计功能以便后期审查。开源的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

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论