#### 6.4.7.1 MySQL 企业防火墙的元素

MySQL Enterprise Firewall 基于包含以下元素的插件库：

-   一个名为的服务器端插件`MYSQL_防火墙`在 SQL 语句执行之前检查它们，并根据注册的防火墙配置文件，决定是执行还是拒绝每个语句。

-   这`MYSQL_防火墙`插件，以及名为的服务器端插件`MYSQL_FIREWALL_USERS`和`MYSQL_FIREWALL_WHITELIST`实施性能模式和`INFORMATION_SCHEMA`提供对已注册配置文件的视图的表。

-   配置文件缓存在内存中以获得更好的性能。中的表`mysql`系统数据库提供防火墙数据的后备存储，以便在服务器重新启动时保持配置文件的持久性。

-   存储过程执行诸如注册防火墙配置文件、建立其操作模式以及管理缓存和持久存储之间的防火墙数据传输等任务。

-   管理功能为较低级别的任务提供了一个 API，例如将缓存与持久存储同步。

-   系统变量启用防火墙配置，状态变量提供运行时操作信息。

-   这[`FIREWALL_ADMIN`](privileges-provided.html#priv_firewall-admin)和[`FIREWALL_USER`](privileges-provided.html#priv_firewall-user)权限使用户能够分别管理任何用户的防火墙规则和他们自己的防火墙规则。

-   这[`FIREWALL_EXEMPT`](privileges-provided.html#priv_firewall-exempt)特权（自 MySQL 8.0.27 起可用）使用户免受防火墙限制。例如，对于任何配置防火墙的数据库管理员来说，这很有用，可以避免错误配置导致甚至管理员被锁定而无法执行语句的可能性。
