10bet网址
MySQL的安全性
相关的文档10bet官方网站 下载此节选

6.7.4 MySQL企业防火墙参考

下面的章节提供了MySQL企业防火墙元素的参考:

MySQL企业防火墙表

MySQL企业防火墙维护每个组和每个帐户的配置文件信息。中使用的表mysql系统数据库用于持久存储和INFORMATION_SCHEMA或Performance Schema表,以提供内存中缓存数据的视图。启用后,防火墙将基于缓存数据做出操作决策。

防火墙组配置表

从MySQL 8.0.23开始,MySQL企业防火墙使用表维护组配置文件信息mysql用于持久存储的系统数据库和提供内存中缓存数据视图的Performance Schema表。

属性的帐户才能访问每个系统和性能模式表选择它的特权。

mysql.firewall_groups表中列出已注册防火墙组配置文件的名称和操作方式。该表包含以下列(具有相应的Performance Schema)firewall_groups列相似但不一定相同的表):

  • 的名字

    组配置文件名称。

  • 模式

    概要文件的当前操作模式。允许的模式值为检测保护,记录.关于它们的含义,请参见防火墙的概念

  • USERHOST

    组配置文件的培训帐户,当配置文件在中时使用记录模式。取值为,或非具有该格式的帐户user_name@host_name

    • 如果值为,防火墙会记录allowlist规则,用于接收来自组成员的任何帐户的语句。

    • 如果为“non-”,防火墙只对从指定帐户(应该是组的成员)接收的语句记录allowlist规则。

mysql.firewall_group_allowlist表中列出已注册防火墙组配置文件的allowlist规则。该表包含以下列(具有相应的Performance Schema)firewall_group_allowlist列相似但不一定相同的表):

  • 的名字

    组配置文件名称。

  • 规则

    指示概要文件可接受的语句模式的规范化语句。配置文件allowlist是其规则的并集。

  • ID

    作为表主键的整数列。

mysql.firewall_membership表中列出已注册防火墙组配置文件的成员(帐户)。该表包含以下列(具有相应的Performance Schema)firewall_membership列相似但不一定相同的表):

  • GROUP_ID

    组配置文件名称。

  • MEMBER_ID

    作为配置文件成员的帐户的名称。

防火墙帐户配置表

数据库中的表维护帐户配置文件信息mysql系统数据库用于持久存储和INFORMATION_SCHEMA表,为内存中缓存的数据提供视图。

每一个mysql的帐户才能访问系统数据库表选择它的特权。的INFORMATION_SCHEMA任何人都可以访问表格。

从MySQL 8.0.26开始,这些表已弃用,并将在未来的MySQL版本中被移除。看到将帐户概要文件迁移到组概要文件

mysql.firewall_users表中列出已注册防火墙帐户配置文件的名称和操作方式。该表有以下列(具有相应的INFORMATION_SCHEMA。MYSQL_FIREWALL_USERS列相似但不一定相同的表):

  • USERHOST

    帐户配置文件名称。每个帐户名都有该格式user_name@host_name

  • 模式

    概要文件的当前操作模式。允许的模式值为检测保护记录,重置.关于它们的含义,请参见防火墙的概念

mysql.firewall_whitelist表中列出了已注册防火墙帐户配置文件的allowlist规则。该表有以下列(具有相应的INFORMATION_SCHEMA。MYSQL_FIREWALL_WHITELIST列相似但不一定相同的表):

  • USERHOST

    帐户配置文件名称。每个帐户名都有该格式user_name@host_name

  • 规则

    指示概要文件可接受的语句模式的规范化语句。配置文件allowlist是其规则的并集。

  • ID

    作为表主键的整数列。该列是在MySQL 8.0.12中添加的。

MySQL企业防火墙存储过程

MySQL Enterprise Firewall存储过程执行的任务包括向防火墙注册概要文件、建立它们的操作模式以及管理在缓存和持久存储之间的防火墙数据传输。这些过程调用为低级任务提供API的管理函数。

防火墙存储过程创建于mysql系统数据库。若要调用防火墙存储过程,可以在while中调用mysql为默认数据库,或使用数据库名称限定过程名。例如:

调用mysql.sp_set_firewall_group_mode (集团模式);
防火墙组配置文件存储过程

这些存储过程对防火墙组配置文件进行管理操作:

  • sp_firewall_group_delist (集团用户

    此存储过程将从防火墙组配置文件中删除帐户。

    如果调用成功,则对内存中的缓存和持久存储进行组成员关系的更改。

    参数:

    • 集团:受影响的组配置文件名称。

    • 用户:要删除的帐户,作为字符串user_name@host_name格式。

    例子:

    调用sp_firewall_group_delist('g', 'fwuser@localhost');

    此过程是在MySQL 8.0.23中添加的。

  • sp_firewall_group_enlist (集团用户

    此存储过程将帐户添加到防火墙组配置文件中。在将帐户添加到组之前,不需要将帐户本身注册到防火墙。

    如果调用成功,则对内存中的缓存和持久存储进行组成员关系的更改。

    参数:

    • 集团:受影响的组配置文件名称。

    • 用户:要添加的帐户,作为字符串user_name@host_name格式。

    例子:

    调用sp_firewall_group_enlist('g', 'fwuser@localhost');

    此过程是在MySQL 8.0.23中添加的。

  • sp_reload_firewall_group_rules (集团

    此存储过程提供对各个组概要文件的防火墙操作的控制。过程使用防火墙管理功能从存储在中的规则重新加载组概要文件的内存规则mysql.firewall_group_allowlist表格

    参数:

    • 集团:受影响的组配置文件名称。

    例子:

    调用sp_reload_firewall_group_rules(“myapp”);
    警告

    此过程在从持久存储中重新加载组概要文件之前清除它们在内存中的allowlist规则,并将概要文件模式设置为.如果配置文件模式不是在此之前sp_reload_firewall_group_rules ()调用,使用sp_set_firewall_group_mode ()在重新加载规则后恢复其以前的模式。例如,如果配置文件在保护模式,在调用后不再成立sp_reload_firewall_group_rules ()你必须把它设置成保护再次明确。

    此过程是在MySQL 8.0.23中添加的。

  • sp_set_firewall_group_mode (集团模式

    这个存储过程在将防火墙组概要文件注册到防火墙(如果它还没有注册)之后,为防火墙组概要文件建立操作模式。该过程还在必要时调用防火墙管理函数,以便在缓存和持久存储之间传输防火墙数据。此过程可以被调用,即使mysql_firewall_mode系统变量为,尽管为概要文件设置模式在启用防火墙之前没有操作效果。

    如果概要文件以前存在,那么它的任何记录限制都保持不变。若要设置或清除限制,请调用sp_set_firewall_group_mode_and_user ()代替。

    参数:

    • 集团:受影响的组配置文件名称。

    • 模式:配置文件的操作模式,作为字符串。允许的模式值为检测保护,记录.关于它们的含义,请参见防火墙的概念

    例子:

    调用sp_set_firewall_group_mode('myapp', ' protective ');

    此过程是在MySQL 8.0.23中添加的。

  • sp_set_firewall_group_mode_and_user (集团模式用户

    此存储过程向防火墙注册一个组并建立其操作模式,类似于sp_set_firewall_group_mode (),但还指定了组进入时使用的培训帐户记录模式。

    参数:

    • 集团:受影响的组配置文件名称。

    • 模式:配置文件的操作模式,作为字符串。允许的模式值为检测保护,记录.关于它们的含义,请参见防火墙的概念

    • 用户:组配置文件的培训账号,在导入时使用记录模式。取值为,或非具有该格式的帐户user_name@host_name

      • 如果值为,防火墙会记录allowlist规则,用于接收来自组成员的任何帐户的语句。

      • 如果为“non-”,防火墙只对从指定帐户(应该是组的成员)接收的语句记录allowlist规则。

    例子:

    调用sp_set_firewall_group_mode_and_user('myapp', 'RECORDING', 'myapp_user1@localhost');

    此过程是在MySQL 8.0.23中添加的。

防火墙帐户配置文件存储过程

这些存储过程对防火墙帐户配置文件进行管理操作:

  • sp_reload_firewall_rules (用户

    此存储过程提供对各个帐户概要的防火墙操作的控制。过程使用防火墙管理功能从存储在中的规则重新加载帐户概要文件的内存规则mysql.firewall_whitelist表格

    参数:

    • 用户:受影响帐户配置文件的名称,在user_name@host_name格式。

    例子:

    调用mysql.sp_reload_firewall_rules(“fwuser@localhost”);
    警告

    此过程在从持久存储重新加载帐户概要文件之前清除内存中的帐户概要文件allowlist规则,并将概要文件模式设置为.如果配置文件模式不是在此之前sp_reload_firewall_rules ()调用,使用sp_set_firewall_mode ()在重新加载规则后恢复其以前的模式。例如,如果配置文件在保护模式,在调用后不再成立sp_reload_firewall_rules ()你必须把它设置成保护再次明确。

    从MySQL 8.0.26开始,这个过程已弃用,并将在未来的MySQL版本中被移除。看到将帐户概要文件迁移到组概要文件

  • sp_set_firewall_mode (用户模式

    该存储过程在向防火墙注册概要文件(如果概要文件尚未注册)之后,为防火墙帐户概要文件建立操作模式。该过程还在必要时调用防火墙管理函数,以便在缓存和持久存储之间传输防火墙数据。此过程可以被调用,即使mysql_firewall_mode系统变量为,尽管为概要文件设置模式在启用防火墙之前没有操作效果。

    参数:

    • 用户:受影响帐户配置文件的名称,在user_name@host_name格式。

    • 模式:配置文件的操作模式,作为字符串。允许的模式值为检测保护记录,重置.关于它们的含义,请参见防火墙的概念

    切换帐户配置文件到任何模式,但记录将其防火墙缓存数据同步到mysql提供持久底层存储的系统数据库表。切换模式记录控件中重新加载allow列表mysql.firewall_whitelist表放入缓存。

    如果帐户配置文件的allowlist为空,则其模式不能设置为保护因为概要文件将拒绝每个语句,有效地禁止帐户执行语句。在响应这样的模式设置尝试时,防火墙会产生一个诊断消息,作为结果集而不是SQL错误返回:

    mysql>调用mysql.sp_set_firewall_mode('a@b','保护');+----------------------------------------------------------------------+ | set_firewall_mode (arg_userhost arg_mode ) | +----------------------------------------------------------------------+ | 错误:保护模式要求a@b但allowlist是空的。| +----------------------------------------------------------------------+

    从MySQL 8.0.26开始,这个过程已弃用,并将在未来的MySQL版本中被移除。看到将帐户概要文件迁移到组概要文件

防火墙其他存储过程

这些存储过程执行各种防火墙管理操作。

  • sp_migrate_firewall_user_to_group (用户集团

    从MySQL 8.0.26开始,帐户概要文件已弃用,因为组概要文件可以做任何帐户概要文件可以做的事情。的sp_migrate_firewall_user_to_group ()存储过程将防火墙帐户配置文件转换为组配置文件,其中该帐户是其单个征募成员。中讨论了转换过程将帐户概要文件迁移到组概要文件

    此例程需要FIREWALL_ADMIN特权。

    参数:

    • 用户:要转换为组配置文件的帐户配置文件的名称,在user_name@host_name格式。帐户概要文件必须存在,并且当前不能在记录模式。

    • 集团:新创建的组配置文件的名称,该名称不能已经存在。新的组配置文件将命名帐户作为其单个招募成员,该成员被设置为组培训帐户。组概要文件操作模式取自帐户概要文件操作模式。

    例子:

    调用sp_migrate_firewall_user_to_group('fwuser@localhost', 'mygroup ');

    此过程是在MySQL 8.0.26中添加的。

MySQL企业防火墙管理功能

MySQL Enterprise Firewall管理功能为底层任务提供了API,例如将防火墙缓存与底层系统表同步。

在正常操作下,这些函数由防火墙存储过程调用,而不是由用户直接调用。因此,这些函数描述不包括参数和返回类型等详细信息。

防火墙组配置文件功能

对防火墙组配置文件进行管理操作:

  • firewall_group_delist (集团用户

    该功能将帐户从组配置文件中移除。它需要FIREWALL_ADMIN特权。

    例子:

    SELECT firewall_group_delist('g', 'fwuser@localhost');

    此函数是在MySQL 8.0.23中添加的。

  • firewall_group_enlist (集团用户

    该功能可将帐户添加到组配置文件中。它需要FIREWALL_ADMIN特权。

    在将帐户添加到组之前,不需要将帐户本身注册到防火墙。

    例子:

    SELECT firewall_group_enlist('g', 'fwuser@localhost');

    此函数是在MySQL 8.0.23中添加的。

  • read_firewall_group_allowlist (集团规则

    这个聚合函数更新命名组概要文件的记录语句缓存选择关于mysql.firewall_group_allowlist表格它需要FIREWALL_ADMIN特权。

    例子:

    SELECT read_firewall_group_allowlist('my_fw_group', fg .rule) FROM mysqlfirewall_group_allowlist AS fgw WHERE NAME = 'my_fw_group';

    此函数是在MySQL 8.0.23中添加的。

  • read_firewall_groups (集团模式用户

    这个聚合函数更新防火墙组概要缓存选择关于mysql.firewall_groups表格它需要FIREWALL_ADMIN特权。

    例子:

    SELECT read_firewall_groups('g', 'RECORDING', 'fwuser@localhost') FROM mysql.firewall_groups;

    此函数是在MySQL 8.0.23中添加的。

  • set_firewall_group_mode (集团模式(,用户])

    该功能管理组配置文件缓存,建立配置文件操作模式,并可选指定配置文件培训帐户。它需要FIREWALL_ADMIN特权。

    如果是可选用户参数没有给出,任何先前的用户配置文件的设置保持不变。要更改设置,请使用第三个参数调用函数。

    如果是可选用户参数时,它指定组配置文件的培训帐户,在配置文件中时使用记录模式。取值为,或非具有该格式的帐户user_name@host_name

    • 如果值为,防火墙会记录allowlist规则,用于接收来自组成员的任何帐户的语句。

    • 如果为“non-”,防火墙只对从指定帐户(应该是组的成员)接收的语句记录allowlist规则。

    例子:

    SELECT set_firewall_group_mode('g', ' detection ');

    此函数是在MySQL 8.0.23中添加的。

防火墙帐号配置功能

防火墙帐户配置文件管理功能:

防火墙其他功能

这些函数执行各种防火墙操作:

MySQL企业防火墙系统变量

MySQL企业防火墙支持以下系统变量。用于配置防火墙操作。除非安装了防火墙,否则这些变量不可用(请参阅第6.7.2节“安装或卸载MySQL企业防火墙”).

  • mysql_firewall_mode

    命令行格式 ——mysql-firewall-mode[={|在}]
    系统变量 mysql_firewall_mode
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 布尔
    默认值

    MySQL企业防火墙是否启用(默认)或禁用。

  • mysql_firewall_trace

    命令行格式 ——mysql-firewall-trace[={|在}]
    系统变量 mysql_firewall_trace
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 布尔
    默认值

    MySQL企业防火墙跟踪是否启用或禁用(默认)。当mysql_firewall_trace启用,对于保护模式下,防火墙将被拒绝的语句写入错误日志。

MySQL企业防火墙状态变量

MySQL企业防火墙支持以下状态变量。使用它们可以获取有关防火墙运行状态的信息。除非安装了防火墙,否则这些变量不可用(请参阅第6.7.2节“安装或卸载MySQL企业防火墙”).时,防火墙状态变量设置为0MYSQL_FIREWALL安装插件或启动服务器。他们中的许多人被重置为零mysql_firewall_flush_status ()函数(见MySQL企业防火墙管理功能).