6.4.6.1 MySQL 企业防火墙组件

MySQL 企业防火墙基于实现以下组件的插件库:

  • 一个名为MYSQL_FIREWALL的服务器端插件会在执行 SQL 语句之前先对其进行检查,并根据其内存中的缓存来决定执行还是拒绝每个语句。

  • 服务器端插件MYSQL_FIREWALL_USERSMYSQL_FIREWALL_WHITELIST实现了INFORMATION_SCHEMAtable,这些 table 提供了有关防火墙数据缓存的视图。

  • mysql数据库中名为firewall_usersfirewall_whitelist的系统 table 提供了防火墙数据的持久存储。

  • 名为sp_set_firewall_mode()sp_reload_firewall_rules()的存储过程执行以下任务,例如在防火墙中注册 MySQL 帐户,构建其操作模式以及 Management 缓存与基础系统 table 之间的防火墙数据传输。

  • 一组用户定义的函数为较低级别的任务提供了 SQL 级别的 API,例如将高速缓存与基础系统 table 同步。

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