6.4.5.10 审核日志参考

以下讨论可作为对 MySQL 企业审核组件的参考:

要安装审核日志 table 和功能,请使用第 6.4.5.2 节“安装或卸载 MySQL 企业审核”中提供的说明。除非安装了这些组件,否则audit_log插件将在旧版模式下运行。参见第 6.4.5.9 节“旧模式审核日志过滤”

审核日志 table

MySQL Enterprise Audit 使用mysql系统数据库中的 table 来永久存储过滤器和用户帐户数据。只有具有该数据库特权的用户才能访问这些 table。这些 table 使用InnoDB存储引擎(MySQL 5.7.21 之前的MyISAM)。

如果缺少这些 table,则audit_log插件将在旧版模式下运行。参见第 6.4.5.9 节“旧模式审核日志过滤”

audit_log_filtertable 存储过滤器定义。该 table 包含以下列:

  • NAME

过滤器名称。

  • FILTER

与过滤器名称关联的过滤器定义。定义存储为JSON个值。

audit_log_usertable 存储用户帐户信息。该 table 包含以下列:

  • USER

帐户的用户名部分。对于帐户user1@localhostUSER部分为user1

  • HOST

帐户的主机名部分。对于帐户user1@localhostHOST部分为localhost

  • FILTERNAME

分配给该帐户的过滤器的名称。过滤器名称将帐户与在audit_log_filtertable 中定义的过滤器相关联。

审核日志功能

本节针对每个审核日志用户定义函数(UDF)描述其用途,调用 Sequences 和返回值。有关可以调用这些 UDF 的条件的信息,请参见第 6.4.5.7 节“审核日志过滤”

每个审核日志 UDF 返回一个字符串,该字符串指示操作是否成功。 OKtable 示成功。 ERROR: messagetable 示失败。

这些审核日志 UDF 可用:

以二进制字符串形式检索当前的审核日志加密密码。密码是从 MySQL 密钥环中获取的,必须启用该密钥,否则会发生错误。任何钥匙圈插件都可以使用;有关说明,请参见第 6.4.4 节“ MySQL 密钥环”

有关审核日志加密的其他信息,请参阅加密审核日志文件

Arguments:

None.

Return value:

成功的密码字符串(最大 766 个字节),或NULL,失败的错误。

Example:

mysql> SELECT audit_log_encryption_password_get();
+-------------------------------------+
| audit_log_encryption_password_get() |
+-------------------------------------+
| secret                              |
+-------------------------------------+

将审核日志加密密码设置为参数,并将密码存储在 MySQL 密钥环中。如果启用了加密,该功能将执行日志文件轮换操作,重命名当前日志文件,并开始使用密码加密的新日志文件。必须启用密钥环,否则会发生错误。任何钥匙圈插件都可以使用;有关说明,请参见第 6.4.4 节“ MySQL 密钥环”

有关审核日志加密的其他信息,请参阅加密审核日志文件

Arguments:

  • password *:密码字符串。允许的最大长度为 766 个字节。

Return value:

1 table 示成功,0table 示失败。

Example:

mysql> SELECT audit_log_encryption_password_set(password);
+---------------------------------------------+
| audit_log_encryption_password_set(password) |
+---------------------------------------------+
| 1                                           |
+---------------------------------------------+

调用任何其他筛选 UDF 都会立即影响操作审核日志筛选,并更新审核日志 table。相反,如果直接使用INSERTUPDATEDELETE等语句修改这些 table 的内容,则更改不会立即影响过滤。要刷新您的更改并使它们可操作,请调用audit_log_filter_flush()

Warning

仅在直接修改审核 table 之后才能使用audit_log_filter_flush(),以强制重新加载所有过滤器。否则,应避免使用此功能。实际上,它是使用UNINSTALL PLUGININSTALL PLUGIN卸载和重新加载audit_log插件的简化版本。

audit_log_filter_flush()影响所有当前会话,并将它们与以前的过滤器分离。除非断开并重新连接或执行更改用户操作,否则将不再记录当前会话。

如果此功能失败,则返回错误消息并禁用审核日志,直到下一次成功调用audit_log_filter_flush()为止。

Arguments:

None.

Return value:

指示操作是否成功的字符串。 OKtable 示成功。 ERROR: messagetable 示失败。

Example:

mysql> SELECT audit_log_filter_flush();
+--------------------------+
| audit_log_filter_flush() |
+--------------------------+
| OK                       |
+--------------------------+

给定一个过滤器名称,将其从当前过滤器集中删除。过滤器不存在不是错误。

如果将删除的过滤器分配给任何用户帐户,则这些用户将停止过滤(将它们从audit_log_usertable 中删除)。过滤终止包括这些用户的任何当前会话:它们与过滤器分离并且不再记录。

Arguments:

    • filter_name *:指定过滤器名称的字符串。

Return value:

指示操作是否成功的字符串。 OKtable 示成功。 ERROR: messagetable 示失败。

Example:

mysql> SELECT audit_log_filter_remove_filter('SomeFilter');
+----------------------------------------------+
| audit_log_filter_remove_filter('SomeFilter') |
+----------------------------------------------+
| OK                                           |
+----------------------------------------------+

给定用户帐户名,导致不再将用户分配给过滤器。如果用户未分配过滤器,这不是错误。用户当前会话的过滤不受影响。如果有新连接,则使用默认帐户过滤器过滤用户的新连接,否则将不记录。

如果名称为%,该函数将删除默认帐户过滤器,该过滤器将用于没有明确分配过滤器的任何用户帐户。

Arguments:

    • user_name *:用户帐户名,格式为user_name@host_name%,代 table 默认帐户。

Return value:

指示操作是否成功的字符串。 OKtable 示成功。 ERROR: messagetable 示失败。

Example:

mysql> SELECT audit_log_filter_remove_user('user1@localhost');
+-------------------------------------------------+
| audit_log_filter_remove_user('user1@localhost') |
+-------------------------------------------------+
| OK                                              |
+-------------------------------------------------+

给定过滤器名称和定义,将过滤器添加到当前过滤器集合中。如果该过滤器已经存在并被任何当前会话使用,则这些会话将从过滤器中分离出来,不再记录。发生这种情况是因为新的过滤器定义具有不同于其先前 ID 的新过滤器 ID。

Arguments:

    • filter_name *:指定过滤器名称的字符串。
      • definition *:一个JSON值,用于指定过滤器定义。

Return value:

指示操作是否成功的字符串。 OKtable 示成功。 ERROR: messagetable 示失败。

Example:

mysql> SET @f = '{ "filter": { "log": false } }';
mysql> SELECT audit_log_filter_set_filter('SomeFilter', @f);
+-----------------------------------------------+
| audit_log_filter_set_filter('SomeFilter', @f) |
+-----------------------------------------------+
| OK                                            |
+-----------------------------------------------+

给定用户帐户名和过滤器名称,将过滤器分配给用户。只能为一个用户分配一个过滤器,因此,如果已经为该用户分配了过滤器,则该分配将被替换。用户当前会话的过滤不受影响。使用新的过滤器过滤新的连接。

在特殊情况下,名称%代 table 默认帐户。该筛选器用于来自没有明确分配筛选器的任何用户帐户的连接。

Arguments:

    • user_name *:用户帐户名,格式为user_name@host_name%,代 table 默认帐户。
      • filter_name *:指定过滤器名称的字符串。

Return value:

指示操作是否成功的字符串。 OKtable 示成功。 ERROR: messagetable 示失败。

Example:

mysql> SELECT audit_log_filter_set_user('user1@localhost', 'SomeFilter');
+------------------------------------------------------------+
| audit_log_filter_set_user('user1@localhost', 'SomeFilter') |
+------------------------------------------------------------+
| OK                                                         |
+------------------------------------------------------------+

读取审核日志并返回二进制JSON字符串结果。如果审核日志格式不是JSON,则会发生错误。

如果没有参数或没有JSON哈希参数,则audit_log_read()将从审核日志中读取事件,并返回包含审核事件数组的JSON字符串。哈希参数中的项目会影响读取的方式,如下所述。返回数组中的每个元素都是一个 table 示为JSON哈希的事件,但最后一个元素可能是JSON null值以指示没有后续事件可读取。

带有由JSON null值组成的参数,audit_log_read()关闭当前的读取序列。

有关审核日志读取过程的其他详细信息,请参阅第 6.4.5.6 节“读取审核日志文件”

Arguments:

  • arg *:该参数是可选的。如果省略,该函数将从当前位置读取事件。如果存在,则参数可以是JSON null值以关闭读取序列,也可以是JSON哈希。在散列参数中,项目是可选的,并且控制读取操作的方面,例如开始读取的位置或要读取的事件数。以下各项很重要(其他项目将被忽略):
  • timestampid:要读取的第一个事件在审核日志中的位置。如果从参数中省略该位置,则从当前位置 continue 读取。 timestampid项一起构成唯一标识特定事件的书签。如果audit_log_read()参数包含任何一项,则它必须同时包含两者以完全指定位置,否则会发生错误。

要获取最近写入的事件的书签,请致电audit_log_read_bookmark()

  • max_array_length:要从日志中读取的最大事件数。如果省略此项,则默认设置为读取到日志末尾或直到读取缓冲区已满(以先到者为准)。

Return value:

如果调用成功,则返回值为包含审核事件数组的二进制JSON字符串,或者返回JSON null值(如果已将其作为参数关闭关闭读取序列)。如果调用失败,则返回值为NULL并发生错误。

Example:

mysql> SELECT audit_log_read(audit_log_read_bookmark());
+-----------------------------------------------------------------------+
| audit_log_read(audit_log_read_bookmark())                             |
+-----------------------------------------------------------------------+
| [ {"timestamp":"2020-05-18 22:41:24","id":0,"class":"connection", ... |
+-----------------------------------------------------------------------+
mysql> SELECT audit_log_read('null');
+------------------------+
| audit_log_read('null') |
+------------------------+
| null                   |
+------------------------+

返回二进制JSON字符串,table 示最近写入的审核日志事件的书签。如果审核日志格式不是JSON,则会发生错误。

书签是带有timestampid项的JSON哈希,它们唯一地标识事件在审计日志中的位置。适用于传递到audit_log_read()以指示该功能开始读取的位置。

有关审核日志读取过程的其他详细信息,请参阅第 6.4.5.6 节“读取审核日志文件”

Arguments:

None.

Return value:

二进制JSON字符串,包含用于成功的书签,或NULL和用于失败的错误。

Example:

mysql> SELECT audit_log_read_bookmark();
+-------------------------------------------------+
| audit_log_read_bookmark()                       |
+-------------------------------------------------+
| { "timestamp": "2019-10-03 21:03:44", "id": 0 } |
+-------------------------------------------------+
审核日志选项和变量参考

table6.34 审核日志选项和变量参考

NameCmd-LineOption FileSystem VarStatus VarVar ScopeDynamic
audit-logYesYes
audit_log_buffer_sizeYesYesYesGlobalNo
audit_log_compressionYesYesYesGlobalNo
audit_log_connection_policyYesYesYesGlobalYes
audit_log_current_sessionYesBothNo
Audit_log_current_sizeYesGlobalNo
audit_log_encryptionYesYesYesGlobalNo
Audit_log_event_max_drop_sizeYesGlobalNo
Audit_log_eventsYesGlobalNo
Audit_log_events_filteredYesGlobalNo
Audit_log_events_lostYesGlobalNo
Audit_log_events_writtenYesGlobalNo
audit_log_exclude_accountsYesYesYesGlobalYes
audit_log_fileYesYesYesGlobalNo
audit_log_filter_idYesBothNo
audit_log_flushYesGlobalYes
audit_log_formatYesYesYesGlobalNo
audit_log_include_accountsYesYesYesGlobalYes
audit_log_policyYesYesYesGlobalNo
audit_log_read_buffer_sizeYesYesYesVariesVaries
audit_log_rotate_on_sizeYesYesYesGlobalYes
audit_log_statement_policyYesYesYesGlobalYes
audit_log_strategyYesYesYesGlobalNo
Audit_log_total_sizeYesGlobalNo
Audit_log_write_waitsYesGlobalNo
审核日志选项和变量

本节介绍了配置 MySQL Enterprise Audit 操作的命令选项和系统变量。如果启动时指定的值不正确,则audit_log插件可能无法正确初始化,并且服务器不会加载它。在这种情况下,服务器也可能会为其他审核日志设置生成错误消息,因为它无法识别它们。

要配置审核日志插件的激活,请使用以下选项:

PropertyValue
Command-Line Format--audit-log[=value]
TypeEnumeration
Default ValueON
Valid ValuesON

OFF
FORCE
FORCE_PLUS_PERMANENT

此选项控制服务器在启动时如何加载audit_log插件。仅当插件先前已在INSTALL PLUGIN注册或已在--plugin-load--plugin-load-add加载时才可用。参见第 6.4.5.2 节“安装或卸载 MySQL 企业审核”

该选项值应该是插件加载选项可用的值之一,如第 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   | OFF          |
| audit_log_exclude_accounts  |              |
| audit_log_file              | audit.log    |
| audit_log_filter_id         | 0            |
| audit_log_flush             | OFF          |
| audit_log_format            | NEW          |
| audit_log_include_accounts  |              |
| audit_log_policy            | ALL          |
| audit_log_rotate_on_size    | 0            |
| audit_log_statement_policy  | ALL          |
| audit_log_strategy          | ASYNCHRONOUS |
+-----------------------------+--------------+

您可以在服务器启动时设置这些变量中的任何一个,在运行时设置其中一些。请注意那些仅可用于旧模式审核日志过滤的内容。

PropertyValue
Command-Line Format--audit-log-buffer-size=#
System Variableaudit_log_buffer_size
ScopeGlobal
DynamicNo
TypeInteger
Default Value1048576
Minimum Value4096
最大值(64 位平台)18446744073709547520
最大值(32 位平台)4294967295

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

PropertyValue
Command-Line Format--audit-log-compression=value
Introduced5.7.21
System Variableaudit_log_compression
ScopeGlobal
DynamicNo
TypeEnumeration
Default ValueNONE
Valid ValuesNONE

GZIP

审核日志文件的压缩类型。允许的值为NONE(不压缩;默认值)和GZIP(GNU Zip 压缩)。有关更多信息,请参见压缩审核日志文件

PropertyValue
Command-Line Format--audit-log-connection-policy=value
System Variableaudit_log_connection_policy
ScopeGlobal
DynamicYes
TypeEnumeration
Default ValueALL
Valid ValuesALL

ERRORS
NONE

Note

此变量仅适用于旧模式审核日志过滤(请参阅第 6.4.5.9 节“旧模式审核日志过滤”)。

控制审核日志插件如何将连接事件写入其日志文件的策略。下 table 显示了允许的值。

ValueDescription
ALL记录所有连接事件
ERRORS仅记录失败的连接事件
NONE不记录连接事件

Note

第 6.4.5.5 节“配置审核日志记录 Feature”中所述,在服务器启动时,如果还指定了audit_log_policy,则可以覆盖为audit_log_connection_policy给出的任何显式值。

PropertyValue
System Variableaudit_log_current_session
ScopeGlobal, Session
DynamicNo
TypeBoolean
Default Valuedepends on filtering policy

当前会话是否启用审核日志记录。该变量的会话值是只读的。在会话开始时根据audit_log_include_accountsaudit_log_exclude_accounts系统变量的值进行设置。审核日志插件使用会话值来确定是否审核该会话的事件。 (有一个全局值,但是插件不使用它.)

PropertyValue
Command-Line Format--audit-log-encryption=value
Introduced5.7.21
System Variableaudit_log_encryption
ScopeGlobal
DynamicNo
TypeEnumeration
Default ValueNONE
Valid ValuesNONE

AES

审核日志文件的加密类型。允许的值为NONE(不加密;默认值)和AES(AES-256-CBC 密码加密)。有关更多信息,请参见加密审核日志文件

PropertyValue
Command-Line Format--audit-log-exclude-accounts=value
System Variableaudit_log_exclude_accounts
ScopeGlobal
DynamicYes
TypeString
Default ValueNULL

Note

此变量仅适用于旧模式审核日志过滤(请参阅第 6.4.5.9 节“旧模式审核日志过滤”)。

不应记录事件的帐户。该值应为NULL或包含一个或多个逗号分隔帐户名列 table 的字符串。有关更多信息,请参见第 6.4.5.7 节“审核日志过滤”

audit_log_exclude_accounts的修改仅影响在修改之后创建的连接,而不影响现有的连接。

PropertyValue
Command-Line Format--audit-log-file=file_name
System Variableaudit_log_file
ScopeGlobal
DynamicNo
TypeFile name
Default Valueaudit.log

审核日志插件向其写入事件的文件的基本名称和后缀。无论记录格式如何,默认值为audit.log。要使名称后缀与格式相对应,请显式设置名称,并选择其他后缀(例如,对于 XML 格式为audit.xml,对于 JSON 格式为audit.json)。

如果audit_log_file的值是相对路径名,则插件将相对于数据目录对其进行解释。如果该值是完整路径名,那么插件将按原样使用该值。如果希望将审核文件放在单独的文件系统或目录中,则完整路径名可能很有用。出于安全原因,请将审核日志文件写入只有 MySQL 服务器和有正当理由查看日志的用户才能访问的目录。

有关审核日志插件如何解释audit_log_file值以及在插件初始化和终止时发生的文件重命名规则的详细信息,请参阅审核日志文件的命名约定

从 MySQL 5.7.21 开始,审核日志插件使用包含审核日志文件(由audit_log_file值确定)的目录作为搜索可读审核日志文件的位置。从这些日志文件和当前文件中,插件将构建一个列 table,这些列 table 将与审核日志书签和读取功能一起使用。参见第 6.4.5.6 节“读取审核日志文件”

PropertyValue
Introduced5.7.13
System Variableaudit_log_filter_id
ScopeGlobal, Session
DynamicNo
TypeInteger

该变量的会话值指示当前会话的审核过滤器的内部维护 ID。值 0table 示会话未分配过滤器。

PropertyValue
System Variableaudit_log_flush
ScopeGlobal
DynamicYes
TypeBoolean
Default ValueOFF

当将此变量设置为启用(1 或ON)时,审核日志插件将关闭并重新打开其日志文件以刷新它。 (该值仍为OFF,因此您无需在再次启用它执行另一个刷新之前就明确禁用它.)除非audit_log_rotate_on_size为 0,否则启用此变量无效。有关更多信息,请参见第 6.4.5.5 节“配置审核日志记录 Feature”

PropertyValue
Command-Line Format--audit-log-format=value
System Variableaudit_log_format
ScopeGlobal
DynamicNo
TypeEnumeration
Default ValueNEW
有效值(≥5.7.21)OLD

NEW
JSON
有效值(≤5.7.20)OLD
NEW

审核日志文件格式。允许值为OLD(旧式 XML),NEW(新式 XML;默认值)和(自 MySQL 5.7.21 起)JSON。有关每种格式的详细信息,请参见第 6.4.5.4 节“审核日志文件格式”

Note

有关更改日志格式时要考虑的问题的信息,请参阅选择审核日志文件格式

PropertyValue
Command-Line Format--audit-log-include-accounts=value
System Variableaudit_log_include_accounts
ScopeGlobal
DynamicYes
TypeString
Default ValueNULL

Note

此变量仅适用于旧模式审核日志过滤(请参阅第 6.4.5.9 节“旧模式审核日志过滤”)。

应记录事件的帐户。该值应为NULL或包含一个或多个逗号分隔帐户名列 table 的字符串。有关更多信息,请参见第 6.4.5.7 节“审核日志过滤”

audit_log_include_accounts的修改仅影响在修改之后创建的连接,而不影响现有的连接。

PropertyValue
Command-Line Format--audit-log-policy=value
System Variableaudit_log_policy
ScopeGlobal
DynamicNo
TypeEnumeration
Default ValueALL
Valid ValuesALL

LOGINS
QUERIES
NONE

Note

此变量仅适用于旧模式审核日志过滤(请参阅第 6.4.5.9 节“旧模式审核日志过滤”)。

控制审核日志插件如何将事件写入其日志文件的策略。下 table 显示了允许的值。

ValueDescription
ALL记录所有事件
LOGINS仅记录登录事件
QUERIES仅记录查询事件
NONE不记录任何内容(禁用审核流)

只能在服务器启动时设置audit_log_policy。在运行时,它是一个只读变量。另外两个系统变量audit_log_connection_policyaudit_log_statement_policy可以更好地控制日志记录策略,可以在启动时或运行时进行设置。如果在启动时使用audit_log_policy而不是其他两个变量,则服务器将使用其值来设置这些变量。有关策略变量及其相互作用的更多信息,请参见第 6.4.5.5 节“配置审核日志记录 Feature”

PropertyValue
Command-Line Format--audit-log-read-buffer-size=#
Introduced5.7.21
System Variableaudit_log_read_buffer_size
范围(≥5.7.23)Global, Session
范围(≤5.7.22)Global
动态(≥5.7.23)Yes
动态(≤5.7.22)No
TypeInteger
默认值(≥5.7.23)32768
预设值(≤5.7.22)1048576
最小值(≥5.7.23)32768
最小值(≤5.7.22)1024
Maximum Value4194304

从审核日志文件读取的缓冲区大小,以字节为单位。 audit_log_read()函数读取的字节数不超过此数量。仅 JSON 日志格式支持日志文件读取。有关更多信息,请参见第 6.4.5.6 节“读取审核日志文件”

从 MySQL 5.7.23 开始,此变量的默认值为 32KB,可以在运行时设置。每个 Client 端都应将其会话值设置为audit_log_read_buffer_size以便使用audit_log_read()。在 MySQL 5.7.23 之前,audit_log_read_buffer_size的默认值为 1MB,会影响所有 Client 端,并且只能在服务器启动时进行更改。

PropertyValue
Command-Line Format--audit-log-rotate-on-size=#
System Variableaudit_log_rotate_on_size
ScopeGlobal
DynamicYes
TypeInteger
Default Value0

如果audit_log_rotate_on_size的值为 0,则审核日志插件不会执行自动日志文件轮换。而是使用audit_log_flush关闭并按需重新打开日志。在这种情况下,请在刷新文件之前在服务器外部手动重命名该文件。

如果audit_log_rotate_on_size值大于 0,则会自动进行基于大小的日志文件轮换。每当写入日志文件导致其大小超过audit_log_rotate_on_size值时,审核日志插件都会关闭当前日志文件,将其重命名,然后打开一个新的日志文件。

有关审核日志文件轮换的更多信息,请参见审计日志文件的空间 Management 和名称轮换

如果将此变量设置为不是 4096 的倍数的值,它将被截断为最接近的倍数。 (因此,将其设置为小于 4096 的效果是将其设置为 0 且不进行旋转,除非手动进行.)

PropertyValue
Command-Line Format--audit-log-statement-policy=value
System Variableaudit_log_statement_policy
ScopeGlobal
DynamicYes
TypeEnumeration
Default ValueALL
Valid ValuesALL

ERRORS
NONE

Note

此变量仅适用于旧模式审核日志过滤(请参阅第 6.4.5.9 节“旧模式审核日志过滤”)。

控制审核日志插件如何将语句事件写入其日志文件的策略。下 table 显示了允许的值。

ValueDescription
ALL记录所有语句事件
ERRORS仅记录失败的语句事件
NONE不记录语句事件

Note

第 6.4.5.5 节“配置审核日志记录 Feature”中所述,在服务器启动时,如果还指定了audit_log_policy,则可以覆盖为audit_log_statement_policy给出的任何显式值。

PropertyValue
Command-Line Format--audit-log-strategy=value
System Variableaudit_log_strategy
ScopeGlobal
DynamicNo
TypeEnumeration
Default ValueASYNCHRONOUS
Valid ValuesASYNCHRONOUS

PERFORMANCE
SEMISYNCHRONOUS
SYNCHRONOUS

审核日志插件使用的日志记录方法。允许使用以下策略值:

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

    • PERFORMANCE:异步登录。删除在输出缓冲区中没有足够空间的请求。

    • SEMISYNCHRONOUS:同步登录。允许 os 进行缓存。

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

审核日志状态变量

如果启用了审核日志插件,则它会公开几个提供操作信息的状态变量。这些变量可用于旧模式审核过滤和 JSON 模式审核过滤。

当前审核日志文件的大小。当事件写入日志时,该值增加;旋转日志时,该值重置为 0.

性能记录模式下最大丢弃事件的大小。有关日志记录模式的说明,请参见第 6.4.5.5 节“配置审核日志记录 Feature”

审核日志插件处理的事件数,无论是否基于过滤策略将其写入日志(请参见第 6.4.5.5 节“配置审核日志记录 Feature”)。

由审计日志插件处理的基于过滤策略(未写入日志)的事件数(请参见第 6.4.5.5 节“配置审核日志记录 Feature”)。

由于事件大于可用审核日志缓冲区空间,因此在性能日志记录模式下丢失的事件数。该值对于评估如何设置audit_log_buffer_size来调整性能模式缓冲区的大小可能很有用。有关日志记录模式的说明,请参见第 6.4.5.5 节“配置审核日志记录 Feature”

写入审核日志的事件数。

写入所有审核日志文件的事件的总大小。与Audit_log_current_size不同,即使旋转日志,Audit_log_total_size的值也会增加。

在异步日志记录模式下,事件必须 await 审核日志缓冲区中的空间的次数。有关日志记录模式的说明,请参见第 6.4.5.5 节“配置审核日志记录 Feature”