10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册 本手册节选

6.4.5.2安装/卸载MySQL企业审计

本节介绍如何安装或卸载MySQL Enterprise Audit,它是通过审计日志插件和相关元素实现的章节6.4.5.1,“MySQL企业审计要素”.有关安装插件的一般信息,请参见章节5.6.1,“安装和卸载插件”

重要的

在遵循本节的说明之前,请阅读整个部分。该过程的部分内容因环境而异。

请注意

如果安装,则audit_log插件即使在禁用时也涉及一些最小的开销。为了避免这种开销,除非你打算使用,否则不要安装MySQL Enterprise Audit。

为了能够被服务器使用,插件库文件必须位于MySQL插件目录中(该目录由plugin_dir系统变量)。如果需要,可以通过设置的值来配置插件的目录位置plugin_dir在服务器启动时。

要安装MySQL Enterprise Audit,请查看分享目录,然后选择适合你的平台的脚本。可用的脚本在引用插件库文件的后缀上有所不同:

  • audit_log_filter_win_install.sql: Windows系统使用. dll作为文件名后缀。

  • audit_log_filter_linux_install.sql: Linux及类似系统使用此脚本所以作为文件名后缀。

执行如下脚本。这里的示例使用Linux安装脚本。对您的系统进行适当的替换。

Shell > mysql -u root -p < audit_log_filter_linux_install. sh输入密码:(此处输入root密码)
请注意

一些MySQL版本引入了MySQL企业审计表结构的变化。要确保您的表从早期版本的MySQL 8.0升级到最新版本,请执行MySQL升级过程,确保使用强制更新的选项(参见章节2.11,“升级MySQL”).如果您希望只对MySQL Enterprise Audit表运行update语句,请参阅下面的讨论。

从MySQL 8.0.12开始,对于新的MySQL安装,请使用用户而且宿主中的列audit_log_user表的定义更好地对应于用户而且宿主中的列mysql.user系统表。对于升级到已经安装了MySQL Enterprise Audit的安装,建议您按照如下方式修改表定义:

修改mysql表。audit_log_userDROP FOREIGN KEY audit_log_user_ibfk_1; ALTER TABLE mysql.audit_log_filter CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_ci; ALTER TABLE mysql.audit_log_user CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_ci; ALTER TABLE mysql.audit_log_user MODIFY COLUMN USER VARCHAR(32); ALTER TABLE mysql.audit_log_user ADD FOREIGN KEY (FILTERNAME) REFERENCES mysql.audit_log_filter(NAME);
请注意

要在源/副本复制、组复制或InnoDB集群上下文中使用MySQL Enterprise Audit,必须在源节点上运行安装脚本之前准备好副本节点。这是必要的,因为安装插件脚本中的语句不会被复制。

  1. 在每个副本节点上,提取安装插件语句,并手动执行它。

  2. 在源节点上,按照前面的描述运行安装脚本。

要验证插件安装,请检查INFORMATION_SCHEMA。插件表或使用显示插件声明(见章节5.6.2“获取服务器插件信息”).例如:

从信息模式中选择PLUGIN_NAME, PLUGIN_STATUSPLUGIN_NAME为'audit%'的插件;+-------------+---------------+ | PLUGIN_NAME | PLUGIN_STATUS  | +-------------+---------------+ | audit_log |活跃  | +-------------+---------------+

如果插件初始化失败,请检查服务器错误日志中的诊断消息。

安装MySQL Enterprise Audit后,可以使用——审计日志选项,供后续服务器启动时控制audit_log插件激活。例如,为了防止插件在运行时被删除,使用这个选项:

(mysqld)审计日志= FORCE_PLUS_PERMANENT

如果希望阻止服务器在没有审计插件的情况下运行,请使用——审计日志值为FORCE_PLUS_PERMANENT如果插件未成功初始化,则强制服务器启动失败。

重要的

缺省情况下,基于规则的审计日志过滤不记录任何用户的可审计事件。这与传统审计日志行为不同,后者记录所有用户的所有可审计事件(参见章节6.4.5.9,“遗留模式审计日志过滤”).如果你希望使用基于规则的过滤来生成日志-一切行为,创建一个简单的过滤器来启用日志记录并将其分配给默认帐户:

SELECT audit_log_filter_set_filter('log_all', '{"filter": {"log": true}}');SELECT audit_log_filter_set_user('%', 'log_all');

分配给的筛选器用于来自没有显式分配筛选器的任何帐户的连接(最初对所有帐户为真)。

一旦按照刚才描述的方式安装,MySQL Enterprise Audit将一直安装到卸载为止。要删除它,执行以下语句:

DROP TABLE IF EXISTS mysql.audit_log_userDROP TABLE IF EXISTS mysql.audit_log_filter卸载插件audit_logaudit_log_filter_set_filter;DROP FUNCTION audit_log_filter_remove_filterDROP FUNCTION audit_log_filter_set_user;DROP FUNCTION audit_log_filter_remove_userDROP FUNCTION audit_log_filter_flush;DROP FUNCTION audit_log_encryption_password_get;DROP FUNCTION audit_log_encryption_password_set; DROP FUNCTION audit_log_read; DROP FUNCTION audit_log_read_bookmark;