mysql自身提供了审计功能,但是只有企业版可用。社区版的可以使用mariadb或者percona提供的审计插件来支持审计功能。
使用的时候,要注意mariadb或者percona与mysql的版本对应关系。
对于mariadb,可以看这里https://mariadb.com/kb/en/system-variable-differences-between-mariadb-and-mysql/ 其中的截图如下。
对这张图,我个人是这样理解的:既然可以两两比较,那么就说明有兼容的基础,在此基础上做进一步的测试就可以了。
本人测试了mariadb-10.3.27的审计插件时可以兼容mysql5.7.31的。其它的大家有需要可以自己测试。
下面说一下如何使用。
mariadb的审计插件相关的介绍官方文档:https://mariadb.com/kb/en/mariadb-audit-plugin/
percona的审计插件文档:https://www.percona.com/doc/percona-server/8.0/management/audit_log_plugin.html#installation
mariadb在最近的版本上并没有将审计插件单独提供,因此,如果要使用的话,需要先安装mariadb server数据库,然后从对应的plugin目录下将server_audit.so文件copy出来,放到mysql软件的plugin目录下。比如,在我的centos7系统上,mariadb的plugin目录位于/usr/lib64/mysql/plugin。
copy完成后,需要登录到mysql中,进行plugin的安装:
mysql> show variables like '%plugin%';
+-------------------------------+------------------------------------------------------+
| Variable_name | Value |
+-------------------------------+------------------------------------------------------+
| default_authentication_plugin | mysql_native_password |
| plugin_dir | /usr/local/mysq