10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国高级主任)- 41.6 mb
PDF (A4)- 41.7 mb
手册页(TGZ)- 262.2 kb
手册页(Zip)- 372.3 kb
信息(Gzip)- 4.0 mb
信息(邮政编码)- 4.0 mb
本手册节选

6.4.5.9遗留模式审计日志过滤

请注意

介绍遗留审计日志过滤,适用于audit_log插件安装时没有附带基于规则的过滤所需的审计表和函数。

审计日志插件可以过滤审计事件。这使您能够根据事件产生的帐户或事件状态控制是否将审计事件写入审计日志文件。连接事件和语句事件分别进行状态过滤。

按帐户筛选遗留事件

要根据原始帐户筛选审计事件,请在服务器启动或运行时设置以下系统变量中的一个(而不是两个)。这些变量仅适用于遗留审计日志过滤。

  • audit_log_include_accounts:审计日志中包含的帐户。如果设置了该变量,则只审计这些帐户。

  • audit_log_exclude_accounts:要排除在审计日志记录之外的帐户。如果设置了该变量,则审计除这些帐户外的所有帐户。

任意一个变量的值都可以为或包含一个或多个逗号分隔的帐户名称的字符串,每个帐户名称在user_name@host_name格式。默认情况下,两个变量都是,在这种情况下,不进行帐户过滤,并对所有帐户进行审计。

修改audit_log_include_accountsaudit_log_exclude_accounts仅影响修改后创建的连接,不影响现有连接。

示例:仅对user1而且user2本地主机帐户,设置audit_log_include_accounts系统变量如下:

SET GLOBAL audit_log_include_accounts = 'user1@localhost,user2@localhost';

只有一个audit_log_include_accountsaudit_log_exclude_accounts可以是非在同一时间:

——将audit_log_exclude_accounts设置为NULL SET GLOBAL audit_log_include_accounts =价值;——这个失败是因为audit_log_include_accounts不是NULL SET GLOBAL audit_log_exclude_accounts =价值;——要设置audit_log_exclude_accounts,首先设置——audit_log_include_accounts为NULL set GLOBAL audit_log_include_accounts = NULL;SET GLOBAL audit_log_exclude_accounts =价值

如果检查任意一个变量的值,请注意显示变量显示作为一个空字符串。来显示作为,使用选择而不是:

显示'audit_log_include_accounts'这样的变量+----------------------------+-------+ | Variable_name |值  | +----------------------------+-------+ | audit_log_include_accounts  | | +----------------------------+-------+ mysql >选择@@audit_log_include_accounts;+------------------------------+ | @@ audit_log_include_accounts  | +------------------------------+ | 零  | +------------------------------+

如果用户名或主机名由于包含逗号、空格或其他特殊字符而需要加引号,请使用单引号。如果变量值本身是用单引号引用的,则将每个内单引号加倍或用反斜杠转义。下面的语句都为本地启用审计日志记录Account和是等价的,尽管引用风格不同:

SET GLOBAL audit_log_include_accounts = 'root@localhost';SET GLOBAL audit_log_include_accounts = " root " @ " localhost ";SET GLOBAL audit_log_include_accounts = '\'root\'@\'localhost\ ";SET GLOBAL audit_log_include_accounts = "'root'@'localhost'";

最后一个语句无效,如果ANSI_QUOTES启用SQL模式,因为在该模式下双引号表示标识符引用,而不是字符串引用。

按状态过滤遗留事件

要根据状态过滤审计事件,请在服务器启动或运行时设置以下系统变量。这些变量仅适用于遗留审计日志过滤。对于JSON审计日志过滤,应用不同的状态变量;看到审计日志选项和变量

每个变量的值为所有(记录所有相关事件;这是默认值),错误(只记录失败的事件),或者没有一个(不要记录事件)。例如,要记录所有语句事件,但只记录失败的连接事件,使用以下设置:

SET全局audit_log_statement_policy = ALL;SET GLOBAL audit_log_connection_policy = ERRORS;

另一个政策系统变量,audit_log_policy,是可用的,但没有提供像audit_log_connection_policy而且audit_log_statement_policy.只能在服务器启动时设置。在运行时,它是一个只读变量。它的值是所有(记录所有事件;这是默认值),登录(日志连接事件),查询(日志语句事件),或没有一个(不要记录事件)。对于这些值中的任何一个,审计日志插件都会记录所有选择的事件,而不区分成功或失败。使用audit_log_policy在启动时工作如下:

  • 如果不设置audit_log_policy或将其设置为默认值所有的任何显式设置audit_log_connection_policyaudit_log_statement_policy按指定应用。如果未指定,则默认为所有

  • 如果你设置audit_log_policy对非所有值,该值优先于并用于设置audit_log_connection_policy而且audit_log_statement_policy,如下表所示。如果您还将这些变量中的任何一个设置为其默认值以外的值所有时,服务器会向错误日志中写入一条消息,表明它们的值正在被覆盖。

    启动audit_log_policy值 结果audit_log_connection_policy值 结果audit_log_statement_policy值
    登录 所有 没有一个
    查询 没有一个 所有
    没有一个 没有一个 没有一个