以下部分提供了对 MySQL Enterprise Audit 元素的参考:
表 6.16 审计日志选项和变量引用
姓名 | 命令行 | 选项文件 | 系统变量 | 状态变量 | 可变范围 | 动态的 |
---|---|---|---|---|---|---|
审计日志 | 是的 | 是的 | ||||
audit_log_buffer_size | 是的 | 是的 | 是的 | 全球的 | 不 | |
audit_log_connection_policy | 是的 | 是的 | 是的 | 全球的 | 是的 | |
audit_log_current_session | 是的 | 两个都 | 不 | |||
Audit_log_current_size | 是的 | 全球的 | 不 | |||
Audit_log_event_max_drop_size | 是的 | 全球的 | 不 | |||
审计日志事件 | 是的 | 全球的 | 不 | |||
Audit_log_events_filtered | 是的 | 全球的 | 不 | |||
Audit_log_events_lost | 是的 | 全球的 | 不 | |||
Audit_log_events_written | 是的 | 全球的 | 不 | |||
audit_log_exclude_accounts | 是的 | 是的 | 是的 | 全球的 | 是的 | |
审计日志文件 | 是的 | 是的 | 是的 | 全球的 | 不 | |
audit_log_flush | 是的 | 全球的 | 是的 | |||
审计日志格式 | 是的 | 是的 | 是的 | 全球的 | 不 | |
audit_log_include_accounts | 是的 | 是的 | 是的 | 全球的 | 是的 | |
audit_log_policy | 是的 | 是的 | 是的 | 全球的 | 变化 | |
audit_log_rotate_on_size | 是的 | 是的 | 是的 | 全球的 | 是的 | |
audit_log_statement_policy | 是的 | 是的 | 是的 | 全球的 | 是的 | |
审计日志策略 | 是的 | 是的 | 是的 | 全球的 | 不 | |
Audit_log_total_size | 是的 | 全球的 | 不 | |||
Audit_log_write_waits | 是的 | 全球的 | 不 |
本节描述控制 MySQL Enterprise Audit 操作的命令选项和系统变量。如果在启动时指定的值不正确,审计日志插件可能无法正确初始化并且服务器不会加载它。在这种情况下,服务器也可能会为其他审核日志设置生成错误消息,因为它无法识别它们。
要控制审核日志插件的激活,请使用此选项:
-
命令行格式 --audit-log[=value]
类型 枚举 默认值 ON
有效值 ON
OFF
FORCE
FORCE_PLUS_PERMANENT
此选项控制服务器
audit_log
在启动时如何加载插件。仅当插件先前已注册INSTALL PLUGIN
或加载 时才可用--plugin-load
或--plugin-load-add
。请参阅 第 6.4.4.1 节,“安装 MySQL Enterprise Audit”。选项值应该是可用于插件加载选项的值之一,如 第 5.5.1 节“安装和卸载插件”中所述。例如,
--audit-log=FORCE_PLUS_PERMANENT
告诉服务器在启动时加载插件并防止它在服务器运行时被删除。
如果启用了审计日志插件,它会公开几个允许控制日志记录的系统变量:
mysql> SHOW VARIABLES LIKE 'audit_log%';
+-----------------------------+--------------+
| Variable_name | Value |
+-----------------------------+--------------+
| audit_log_buffer_size | 1048576 |
| audit_log_connection_policy | ALL |
| audit_log_current_session | ON |
| audit_log_exclude_accounts | |
| audit_log_file | audit.log |
| audit_log_flush | OFF |
| audit_log_format | OLD |
| audit_log_include_accounts | |
| audit_log_policy | ALL |
| audit_log_rotate_on_size | 0 |
| audit_log_statement_policy | ALL |
| audit_log_strategy | ASYNCHRONOUS |
+-----------------------------+--------------+
您可以在服务器启动时设置这些变量中的任何一个,也可以在运行时设置其中的一些变量。
-
命令行格式 --audit-log-buffer-size=#
系统变量 audit_log_buffer_size
范围 全球的 动态的 不 类型 整数 默认值 1048576
最小值 4096
最大值(64 位平台) 18446744073709547520
最大值(32 位平台) 4294967295
单元 字节 块大小 4096
当审计日志插件将事件异步写入日志时,它会在写入事件之前使用一个缓冲区来存储事件内容。此变量控制该缓冲区的大小(以字节为单位)。服务器将值调整为 4096 的倍数。插件使用单个缓冲区,它在初始化时分配并在终止时删除。仅当日志记录是异步的时,插件才会分配此缓冲区。
-
命令行格式 --audit-log-connection-policy=value
介绍 5.6.20 系统变量 audit_log_connection_policy
范围 全球的 动态的 是的 类型 枚举 默认值 ALL
有效值 ALL
ERRORS
NONE
控制审计日志插件如何将连接事件写入其日志文件的策略。下表显示了允许的值。
价值 描述 ALL
记录所有连接事件 ERRORS
仅记录失败的连接事件 NONE
不记录连接事件 笔记在服务器启动时,如 第 6.4.4.4 节“配置审计日志记录特征”
audit_log_connection_policy
中所述, 如果还指定了,则可能会覆盖 任何显式的值 。audit_log_policy
-
介绍 5.6.20 系统变量 audit_log_current_session
范围 全局,会话 动态的 不 类型 布尔值 默认值 depends on filtering policy
是否为当前会话启用审计日志记录。此变量的会话值是只读的。它是在会话开始时根据
audit_log_include_accounts
和audit_log_exclude_accounts
系统变量的值设置的。审计日志插件使用会话值来确定是否审计会话的事件。(有一个全局值,但插件不使用它。) -
命令行格式 --audit-log-exclude-accounts=value
介绍 5.6.20 系统变量 audit_log_exclude_accounts
范围 全球的 动态的 是的 类型 细绳 默认值 NULL
不应记录其事件的帐户。该值应该是
NULL
或一个字符串,其中包含一个或多个以逗号分隔的帐户名称的列表。有关详细信息,请参阅 第 6.4.4.5 节,“审计日志过滤”。修改
audit_log_exclude_accounts
仅影响修改后创建的连接,而不影响现有连接。 -
命令行格式 --audit-log-file=file_name
系统变量 audit_log_file
范围 全球的 动态的 不 类型 文件名 默认值 audit.log
审计日志插件将事件写入的文件的名称。默认值为
audit.log
。如果 的值audit_log_file
是相对路径名,则插件将其解释为相对于数据目录。如果该值是完整路径名,插件将按原样使用该值。如果希望在单独的文件系统或目录中找到审计文件,则完整路径名可能很有用。出于安全原因,审计日志文件应该被写入一个目录,只有 MySQL 服务器和有正当理由查看日志的用户才能访问。有关详细信息,请参阅第 6.4.4.4 节,“配置审计日志记录特征”. -
系统变量 audit_log_flush
范围 全球的 动态的 是的 类型 布尔值 默认值 OFF
如果
audit_log_rotate_on_size
为 0,则禁用自动审计日志文件轮换,轮换仅在手动执行时发生。在这种情况下,audit_log_flush
通过将其设置为 1 或ON
导致审计日志插件关闭并重新打开其日志文件以刷新它来启用。(变量值保留OFF
,因此您无需在再次启用它以执行另一次刷新之前明确禁用它。)有关更多信息,请参阅 第 6.4.4.4 节,“配置审计日志记录特征”。 -
命令行格式 --audit-log-format=value
介绍 5.6.14 系统变量 audit_log_format
范围 全球的 动态的 不 类型 枚举 默认值 OLD
有效值 OLD
NEW
审核日志文件格式。允许的值为
OLD
和NEW
(默认值OLD
)。有关每种格式的详细信息,请参阅第 6.4.4.3 节,“审计日志文件格式”。笔记更改 的值
audit_log_format
可能导致将一种格式的日志条目写入包含不同格式条目的现有日志文件。为避免此问题,请使用审计日志文件格式中描述的过程。 -
命令行格式 --audit-log-include-accounts=value
介绍 5.6.20 系统变量 audit_log_include_accounts
范围 全球的 动态的 是的 类型 细绳 默认值 NULL
应记录事件的帐户。该值应该是
NULL
或一个字符串,其中包含一个或多个以逗号分隔的帐户名称的列表。有关详细信息,请参阅 第 6.4.4.5 节,“审计日志过滤”。修改
audit_log_include_accounts
仅影响修改后创建的连接,而不影响现有连接。 -
命令行格式 --audit-log-policy=value
系统变量 audit_log_policy
范围 全球的 动态(≥ 5.6.20) 不 动态(≤ 5.6.19) 是的 类型 枚举 默认值 ALL
有效值 ALL
LOGINS
QUERIES
NONE
控制审计日志插件如何将事件写入其日志文件的策略。下表显示了允许的值。
价值 描述 ALL
记录所有事件 LOGINS
仅记录登录事件 QUERIES
仅记录查询事件 NONE
什么都不记录(禁用审计流) 从 MySQL 5.6.20 开始,
audit_log_policy
只能在服务器启动时设置。在运行时,它是一个只读变量。这是由于引入了另外两个系统变量audit_log_connection_policy
和audit_log_statement_policy
,它们可以更好地控制日志记录策略,并且可以在启动时或运行时设置。如果您在启动时继续使用audit_log_policy
而不是其他两个变量,服务器将使用它的值来设置这些变量。有关策略变量及其交互的更多信息,请参阅 第 6.4.4.4 节,“配置审计日志记录特征”.在MySQL 5.6.20之前, 不存在
audit_log_connection_policy
和 系统变量。是唯一的策略控制变量,它可以在服务器启动或运行时设置。audit_log_statement_policy
audit_log_policy
-
命令行格式 --audit-log-rotate-on-size=#
系统变量 audit_log_rotate_on_size
范围 全球的 动态的 是的 类型 整数 默认值 0
最小值 0
最大值 18446744073709551615
单元 字节 块大小 4096
如果
audit_log_rotate_on_size
为 0,审计日志插件不会执行基于大小的日志文件自动轮换。如果要进行旋转,则必须手动执行;请参阅 手动审核日志文件轮换。如果
audit_log_rotate_on_size
大于 0,则会发生基于大小的自动日志文件轮换。每当写入日志文件导致其大小超过该audit_log_rotate_on_size
值时,审计日志插件将重命名当前日志文件并使用原始名称打开一个新的当前日志文件。如果您设置
audit_log_rotate_on_size
的值不是 4096 的倍数,它将被截断为最接近的倍数。特别是,将其设置为小于 4096 的值会将其设置为 0,并且不会发生旋转,除非手动进行。有关审计日志文件轮换的更多信息,请参阅审计日志文件 的空间管理。
-
命令行格式 --audit-log-statement-policy=value
介绍 5.6.20 系统变量 audit_log_statement_policy
范围 全球的 动态的 是的 类型 枚举 默认值 ALL
有效值 ALL
ERRORS
NONE
控制审计日志插件如何将语句事件写入其日志文件的策略。下表显示了允许的值。
价值 描述 ALL
记录所有语句事件 ERRORS
仅记录失败的语句事件 NONE
不记录语句事件 笔记在服务器启动时,如 第 6.4.4.4 节“配置审计日志记录特征”
audit_log_statement_policy
中所述, 如果还指定了,则可能会覆盖 任何显式的值 。audit_log_policy
-
命令行格式 --audit-log-strategy=value
系统变量 audit_log_strategy
范围 全球的 动态的 不 类型 枚举 默认值 ASYNCHRONOUS
有效值 ASYNCHRONOUS
PERFORMANCE
SEMISYNCHRONOUS
SYNCHRONOUS
审计日志插件使用的日志记录方法。这些策略值是允许的:
ASYNCHRONOUS
: 异步登录。等待输出缓冲区中的空间。PERFORMANCE
: 异步登录。丢弃输出缓冲区中空间不足的请求。SEMISYNCHRONOUS
: 同步登录。允许操作系统缓存。SYNCHRONOUS
: 同步登录。sync()
每次请求后 调用。
如果启用了审计日志插件,它会公开几个提供操作信息的状态变量。
当前审计日志文件的大小。当事件写入日志时该值会增加,而当日志轮换时该值会重置为 0。
性能日志记录模式下最大丢弃事件的大小。有关日志记录模式的说明,请参阅 第 6.4.4.4 节,“配置审计日志记录特征”。
审计日志插件处理的事件数,无论它们是否根据过滤策略写入日志(请参阅 第 6.4.4.4 节,“配置审计日志记录特征”)。
根据过滤策略过滤(未写入日志)的审计日志插件处理的事件数(请参阅 第 6.4.4.4 节,“配置审计日志记录特征”)。
由于事件大于可用审计日志缓冲区空间而在性能日志记录模式下丢失的事件数。此值可能有助于评估如何设置
audit_log_buffer_size
性能模式的缓冲区大小。有关日志记录模式的说明,请参阅 第 6.4.4.4 节,“配置审计日志记录特征”。写入审计日志的事件数。
写入所有审计日志文件的事件的总大小。与 不同 的是, 即使轮换日志
Audit_log_current_size
,值 也会增加。Audit_log_total_size
在异步日志记录模式下,事件必须等待审计日志缓冲区中的空间的次数。有关日志记录模式的说明,请参阅 第 6.4.4.4 节,“配置审计日志记录特征”。