组件提供了对 MySQL 企业数据屏蔽和去标识功能的扩展访问。以前,MySQL 将屏蔽和去标识功能实现为插件库文件,包含插件和多个可加载函数。在开始组件安装之前,删除 data_masking
插件及其所有可加载函数,以避免冲突。有关说明,请参阅 第 8.5.3.1 节,“MySQL 企业数据屏蔽和去标识插件安装”。
MySQL 企业数据屏蔽和去标识数据库表和组件是:
-
masking_dictionaries
表目的:提供屏蔽字典和术语的持久存储。传统的存储选项是
mysql
系统模式。但是,从 MySQL 8.3.0 开始,创建专门的模式以供此用途是允许的。创建专门的模式可能是因为以下原因:-
系统模式
mysql
不会被逻辑备份,例如 mysqldump 或加载操作。 -
专门的模式使得出站复制变得更容易。
-
用户或角色在专门的模式中执行相关数据屏蔽任务时,不需要
mysql
模式权限。
-
-
component_masking
组件目的:该组件实现了屏蔽功能的核心,并将其作为服务公开。
URN:
file://component_masking
-
component_masking_functions
组件目的:该组件将
component_masking
组件的所有功能公开为可加载函数。一些函数需要MASKING_DICTIONARIES_ADMIN
动态权限。URN:
file://component_masking_functions
如果在复制源服务器上使用组件和函数,请在所有副本服务器上安装它们,以避免复制问题。在加载组件时,关于它们的信息将可用,如第 7.5.2 节,“获取组件信息”所述。关于安装或卸载组件的一般信息,请参阅第 7.5.1 节,“安装和卸载组件”。
MySQL Enterprise Data Masking and De-Identification 支持以下设置和删除过程:
考虑使用专用模式来存储数据屏蔽字典(见使用专用模式安装)。
要设置 MySQL Enterprise Data Masking and De-Identification:
-
运行
masking_functions_install.sql
以将masking_dictionaries
表添加到mysql
模式中并安装组件。该脚本位于 MySQL 安装的share
目录中。$> mysql -u root -p -D mysql < [path/]masking_functions_install.sql Enter password: (enter root password here)
要设置 MySQL Enterprise Data Masking and De-Identification:
-
创建一个数据库来存储
masking_dictionaries
表。例如,要使用mask_db
作为数据库名称,请执行以下语句:$> mysql -u root -p -e "CREATE DATABASE IF NOT EXISTS mask_db" Enter password: (enter root password here)
-
运行
masking_functions_install.sql
以将masking_dictionaries
表添加到mask_db
模式中并安装组件。该脚本位于 MySQL 安装的share
目录中。$> mysql -u root -p -D mask_db < [path/]masking_functions_install.sql Enter password: (enter root password here)
-
在启动时通过在
mask_db
模式前添加PERSIST_ONLY
关键字来设置和持久化模式,preceding thecomponent_masking.masking_database
只读变量名称。$> mysql -u root -p -e "SET PERSIST_ONLY component_masking.masking_database=mask_db" Enter password: (enter root password here)
修改变量后,重新启动服务器以使新设置生效。
要删除 MySQL Enterprise 数据屏蔽和去标识组件时使用 mysql
系统模式:
-
运行
masking_functions_uninstall.sql
以删除适当模式中的masking_dictionaries
表并卸载组件。该脚本位于 MySQL 安装的share
目录中。这里的示例指定了mysql
数据库。$> mysql -u root -p -D mysql < [path/]masking_functions_uninstall.sql Enter password: (enter root password here)
要删除 MySQL Enterprise 数据屏蔽和去标识组件时使用专用模式:
-
运行
masking_functions_uninstall.sql
以删除适当模式中的masking_dictionaries
表并卸载组件。该脚本位于 MySQL 安装的share
目录中。这里的示例指定了mask_db
数据库。$> mysql -u root -p -D mask_db < [path/]masking_functions_uninstall.sql Enter password: (enter root password here)
-
停止持久化
component_masking.masking_database
变量。$> mysql -u root -p -e "RESET PERSIST component_masking.masking_database" Enter password: (enter root password here)
-
[可选] 删除专用模式以确保它不用于其他目的。
DROP DATABASE mask_db;