最近在考MySQL 8.0的OCP ,开个专题专门查漏补缺下
只是做备忘,有的概念只是一笔带过,具体可自行搜索
基于8.0.26
由于该功能只在企业版上,这里没有环境,所有命令和图片来自官网
可以使用如下方法来安装,一次性的
安装脚本在数据库安装目录的share目录下
这里我们使用linux脚本来安装,这里安装在mysql数据库下面
$> mysql -u root -p mysql < linux_install_firewall.sql
Enter password: (enter root password here)
安装完后默认启用防火墙,可以使用如下方法查看
mysql> SHOW GLOBAL VARIABLES LIKE 'mysql_firewall_mode';
+---------------------+-------+
| Variable_name | Value |
+---------------------+-------+
| mysql_firewall_mode | ON |
+---------------------+-------+
使用mysql_firewall_mode参数来控制是否启用防火墙
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;
主要有如下权限
FIREWALL_EXEMPT 豁免权限,防止误操作取消了需要权限的用户
FIREWALL_ADMIN 管理员权限,可以对防火墙进行完全控制
FIREWALL_USER 该权限允许对自己规则的管理权限
EXECUTE 对防火墙相关存储过程的执行权限