MySQL企业审计支持对连接和查询活动进行标准的、基于策略的监视和日志记录,为受内部和外部监管指南控制的应用程序提供审计和遵从性解决方案。
当安装时,审计插件使MySQL服务器产生一个日志文件,其中包含服务器活动的审计记录。日志内容包括客户机连接和断开连接的时间,以及在连接时执行的操作,例如访问的数据库和表。
安装插件后,它会写入一个审计日志文件。缺省情况下,文件是命名的audit.log
并且位于数据目录中。
安装MySQL企业审计:
运行
audit_log_filter_linux_install.sql
位于分享
MySQL安装目录。Shell > CD /usr/local/mysql Shell > bin/mysql -u root -p < /usr/local/mysql/share/audit_log_filter_linux_install. shsql输入密码:(此处输入root密码)结果好
通过以root身份登录并检查插件安装
INFORMATION_SCHEMA。插件
表或使用显示插件
声明。shell> cd /usr/local/mysql shell> bin/mysqladmin -u root -p version Enter password:(此处输入root密码)
mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA。PLUGIN_NAME为'audit%'的插件;+-------------+---------------+ | PLUGIN_NAME | PLUGIN_STATUS | +-------------+---------------+ | audit_log |活跃 | +-------------+---------------+
若要防止插件在运行时被删除,请添加
——审计日志
的选项(mysqld)
选项组在MySQL配置文件(/etc/my.cnf
),设置为FORCE_PLUS_PERMANENT
.审计日志= FORCE_PLUS_PERMANENT
重新启动服务器以应用配置更改:
Shell > systemctl restart mysqld
缺省情况下,基于规则的审计日志过滤不记录任何用户的可审计事件。要使用基于规则的过滤产生日志-一切行为,创建一个简单的过滤器来启用日志记录,并将其分配给默认帐户:
mysql> SELECT audit_log_filter_set_filter('log_all', '{"filter": {"log": true}}');+-------------------------------------------------------------------------+ | audit_log_filter_set_filter(“log_all”、“{“过滤器”:{“日志”:真的 } }') | +-------------------------------------------------------------------------+ | 好吧 | +-------------------------------------------------------------------------+ mysql >选择audit_log_filter_set_user(“%”、“log_all”);+-------------------------------------------------------------------------+ | audit_log_filter_set_filter(“log_all”、“{“过滤器”:{“日志”:真的 } }') | +-------------------------------------------------------------------------+ | 好吧 | +-------------------------------------------------------------------------+
分配给的过滤器
%
用于来自没有显式分配筛选器的任何帐户的连接(最初对所有帐户都是如此)。要验证事件是否被记录,发出如下语句
显示数据库
检查audit.log
日志事件的文件内容。shell> cd /usr/local/mysql shell> bin/mysqladmin -u root -p version Enter password:(此处输入root密码)
mysql>显示数据库;+--------------------+ | 数据库 | +--------------------+ | mysql information_schema | | | | performance_schema | |系统 | +--------------------+
的
显示数据库
语句以以下方式运行root@localhost
将日志事件写入audit.log
类似如下:2018-04-20T11:28:02 UTC 7_2018-04-20T11:27:29 Query 9 0 0 root[root] @ localhost []localhost show_databases SHOW DATABASES
审计日志文件的内容可能包含敏感信息,如SQL语句的文本。出于安全考虑,应该将该文件写入只有MySQL服务器和有合法理由查看日志的用户才能访问的目录。默认的审计日志文件名为audit.log
并且位于数据目录中。在此部署中,数据目录由mysql
用户。方法可以在服务器启动时更改审计日志文件的此位置audit_log_file
系统变量。
还可以选择对审计日志文件进行加密。加密基于用户定义的密码。要使用此特性,必须启用MySQL密匙环。审计日志使用MySQL密匙环进行密码存储。有关更多信息,请参见加密审计日志文件.
有关配置MySQL企业审计的更多信息,请参见MySQL企业审计.