10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 本手册下载 本手册节选

6.4.7.4 MySQL企业防火墙参考

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

MySQL企业防火墙表

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

防火墙组配置文件表

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

的帐户才能访问每个系统和性能架构表选择特权。

mysql.firewall_groups已注册的防火墙组配置文件名称及操作方式如下表所示。该表包含以下列(以及相应的性能架构firewall_groups有相似但不一定相同列的表):

  • 的名字

    组配置文件名称。

  • 模式

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

  • USERHOST

    组配置文件的训练帐户,在配置文件中时使用记录模式。这个值是,或非-具有格式的帐户user_name@host_name

    • 如果值为,防火墙记录allowlist规则从组的任何成员帐户收到的语句。

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

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

  • 的名字

    组配置文件名称。

  • 规则

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

  • ID

    作为表的主键的整数列。

mysql.firewall_membership已注册防火墙组配置文件的成员(账号)如表3 - 2所示。该表包含以下列(以及相应的性能架构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系统数据库。若要调用防火墙存储过程,请在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”、“保护”);

    在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提供持久底层存储的系统数据库表。切换模式记录对象重新加载allowlistmysql.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企业防火墙管理功能为低级任务提供了一个API,比如将防火墙缓存与底层系统表同步。

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

防火墙组配置文件功能

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

  • firewall_group_delist (集团用户

    此功能从组配置文件中删除帐户。它要求FIREWALL_ADMIN特权。

    例子:

    选择firewall_group_delist(“g”,“fwuser@localhost”);

    此功能在MySQL 8.0.23中新增。

  • firewall_group_enlist (集团用户

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

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

    例子:

    选择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', fgw.rule) FROM mysql。firewall_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规则。

    例子:

    选择set_firewall_group_mode(“g”、“检测”);

    此功能在MySQL 8.0.23中新增。

防火墙帐户配置文件功能

这些功能对防火墙帐户配置文件进行管理操作:

防火墙的功能

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

MySQL企业防火墙系统变量

MySQL企业防火墙支持以下系统变量。使用它们来配置防火墙操作。除非安装了防火墙,否则这些变量是不可用的第6.4.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.4.7.2节“安装或卸载MySQL企业防火墙”).时,将防火墙状态变量设置为0MYSQL_FIREWALL安装插件或启动服务器。很多都被重置为零mysql_firewall_flush_status ()函数(见MySQL企业防火墙管理功能).