Documentation Home

6.4.4.6 审计日志参考

以下部分提供了对 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 操作的命令选项和系统变量。如果在启动时指定的值不正确,审计日志插件可能无法正确初始化并且服务器不会加载它。在这种情况下,服务器也可能会为其他审核日志设置生成错误消息,因为它无法识别它们。

要控制审核日志插件的激活,请使用此选项:

如果启用了审计日志插件,它会公开几个允许控制日志记录的系统变量:

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=#
    系统变量 audit_log_buffer_size
    范围 全球的
    动态的
    类型 整数
    默认值 1048576
    最小值 4096
    最大值(64 位平台) 18446744073709547520
    最大值(32 位平台) 4294967295
    单元 字节
    块大小 4096

    当审计日志插件将事件异步写入日志时,它会在写入事件之前使用一个缓冲区来存储事件内容。此变量控制该缓冲区的大小(以字节为单位)。服务器将值调整为 4096 的倍数。插件使用单个缓冲区,它在初始化时分配并在终止时删除。仅当日志记录是异步的时,插件才会分配此缓冲区。

  • audit_log_connection_policy

    命令行格式 --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

  • audit_log_current_session

    介绍 5.6.20
    系统变量 audit_log_current_session
    范围 全局,会话
    动态的
    类型 布尔值
    默认值 depends on filtering policy

    是否为当前会话启用审计日志记录。此变量的会话值是只读的。它是在会话开始时根据 audit_log_include_accountsaudit_log_exclude_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

    命令行格式 --audit-log-file=file_name
    系统变量 audit_log_file
    范围 全球的
    动态的
    类型 文件名
    默认值 audit.log

    审计日志插件将事件写入的文件的名称。默认值为 audit.log。如果 的值 audit_log_file是相对路径名,则插件将其解释为相对于数据目录。如果该值是完整路径名,插件将按原样使用该值。如果希望在单独的文件系统或目录中找到审计文件,则完整路径名可能很有用。出于安全原因,审计日志文件应该被写入一个目录,只有 MySQL 服务器和有正当理由查看日志的用户才能访问。有关详细信息,请参阅第 6.4.4.4 节,“配置审计日志记录特征”.

  • audit_log_flush

    系统变量 audit_log_flush
    范围 全球的
    动态的 是的
    类型 布尔值
    默认值 OFF

    如果 audit_log_rotate_on_size 为 0,则禁用自动审计日志文件轮换,轮换仅在手动执行时发生。在这种情况下, audit_log_flush通过将其设置为 1 或ON导致审计日志插件关闭并重新打开其日志文件以刷新它来启用。(变量值保留OFF,因此您无需在再次启用它以执行另一次刷新之前明确禁用它。)有关更多信息,请参阅 第 6.4.4.4 节,“配置审计日志记录特征”

  • audit_log_format

    命令行格式 --audit-log-format=value
    介绍 5.6.14
    系统变量 audit_log_format
    范围 全球的
    动态的
    类型 枚举
    默认值 OLD
    有效值

    OLD

    NEW

    审核日志文件格式。允许的值为 OLDNEW(默认值 OLD)。有关每种格式的详细信息,请参阅第 6.4.4.3 节,“审计日志文件格式”

    笔记

    更改 的值 audit_log_format可能导致将一种格式的日志条目写入包含不同格式条目的现有日志文件。为避免此问题,请使用审计日志文件格式中描述的过程。

  • audit_log_include_accounts

    命令行格式 --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

    命令行格式 --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_policyaudit_log_statement_policy,它们可以更好地控制日志记录策略,并且可以在启动时或运行时设置。如果您在启动时继续使用 audit_log_policy而不是其他两个变量,服务器将使用它的值来设置这些变量。有关策略变量及其交互的更多信息,请参阅 第 6.4.4.4 节,“配置审计日志记录特征”.

    在MySQL 5.6.20之前, 不存在 audit_log_connection_policy 和 系统变量。是唯一的策略控制变量,它可以在服务器启动或运行时设置。 audit_log_statement_policyaudit_log_policy

  • audit_log_rotate_on_size

    命令行格式 --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

    命令行格式 --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

    命令行格式 --audit-log-strategy=value
    系统变量 audit_log_strategy
    范围 全球的
    动态的
    类型 枚举
    默认值 ASYNCHRONOUS
    有效值

    ASYNCHRONOUS

    PERFORMANCE

    SEMISYNCHRONOUS

    SYNCHRONOUS

    审计日志插件使用的日志记录方法。这些策略值是允许的:

    • ASYNCHRONOUS: 异步登录。等待输出缓冲区中的空间。

    • PERFORMANCE: 异步登录。丢弃输出缓冲区中空间不足的请求。

    • SEMISYNCHRONOUS: 同步登录。允许操作系统缓存。

    • SYNCHRONOUS: 同步登录。sync()每次请求后 调用。

审计日志插件状态变量

如果启用了审计日志插件,它会公开几个提供操作信息的状态变量。