最近在考MySQL 8.0的OCP ,开个专题专门查漏补缺下 只是做备忘,有的概念只是一笔带过,具体可自行搜索 基于8.0.26 由于该功能只在企业版上,这里没有环境,所有命令和图片来自官网 ## 1. 安装防火墙 可以使用如下方法来安装,一次性的 - windows中使用MySQL Installer 图形化界面来安装 [image:1004 size:orig] - 使用MySQL Workbench 6.3.4或更高版本来安装 [image:1005 size:orig] - 使用脚本来手动安装 安装脚本在数据库安装目录的share目录下 - - win_install_firewall.sql - - linux_install_firewall.sql 这里我们使用linux脚本来安装,这里安装在mysql数据库下面 ``` $> mysql -u root -p mysql < linux_install_firewall.sql Enter password: (enter root password here) ``` ## 2.查看状态 安装完后默认启用防火墙,可以使用如下方法查看 ``` mysql> SHOW GLOBAL VARIABLES LIKE 'mysql_firewall_mode'; +---------------------+-------+ | Variable_name | Value | +---------------------+-------+ | mysql_firewall_mode | ON | +---------------------+-------+ ``` 使用mysql_firewall_mode参数来控制是否启用防火墙 ### 3. 卸载防火墙 ``` DROP TABLE IF EXISTS mysql.firewall_group_allowlist; DROP TABLE IF EXISTS mysql.firewall_groups; DROP TABLE IF EXISTS mysql.firewall_membership; DROP TABLE IF EXISTS mysql.firewall_users; DROP TABLE IF EXISTS mysql.firewall_whitelist; UNINSTALL PLUGIN MYSQL_FIREWALL; UNINSTALL PLUGIN MYSQL_FIREWALL_USERS; UNINSTALL PLUGIN MYSQL_FIREWALL_WHITELIST; DROP FUNCTION IF EXISTS firewall_group_delist; DROP FUNCTION IF EXISTS firewall_group_enlist; DROP FUNCTION IF EXISTS mysql_firewall_flush_status; DROP FUNCTION IF EXISTS normalize_statement; DROP FUNCTION IF EXISTS read_firewall_group_allowlist; DROP FUNCTION IF EXISTS read_firewall_groups; DROP FUNCTION IF EXISTS read_firewall_users; DROP FUNCTION IF EXISTS read_firewall_whitelist; DROP FUNCTION IF EXISTS set_firewall_group_mode; DROP FUNCTION IF EXISTS set_firewall_mode; DROP PROCEDURE IF EXISTS mysql.sp_firewall_group_delist; DROP PROCEDURE IF EXISTS mysql.sp_firewall_group_enlist; DROP PROCEDURE IF EXISTS mysql.sp_reload_firewall_group_rules; DROP PROCEDURE IF EXISTS mysql.sp_reload_firewall_rules; DROP PROCEDURE IF EXISTS mysql.sp_set_firewall_group_mode; DROP PROCEDURE IF EXISTS mysql.sp_set_firewall_group_mode_and_user; DROP PROCEDURE IF EXISTS mysql.sp_set_firewall_mode; ``` ## 4. 防火墙权限 主要有如下权限 - FIREWALL_EXEMPT 豁免权限,防止误操作取消了需要权限的用户 - FIREWALL_ADMIN 管理员权限,可以对防火墙进行完全控制 - FIREWALL_USER 该权限允许对自己规则的管理权限 - EXECUTE 对防火墙相关存储过程的执行权限