组件提供了对 MySQL 企业版数据屏蔽和脱敏功能的扩展访问权限。以前,MySQL 将屏蔽和脱敏功能作为包含一个插件和多个可加载函数的插件库文件实现。在开始组件安装之前,请删除 data_masking
插件及其所有可加载函数以避免冲突。有关说明,请参见 第 8.5.3.1 节,“MySQL 企业版数据屏蔽和脱敏插件安装”。
MySQL 企业版数据屏蔽和脱敏数据库表和组件是
masking_dictionaries
表用途:一个表,它提供用于屏蔽字典和术语的持久存储。虽然
mysql
系统架构是传统的存储选项,但允许为该目的创建专用架构。出于以下原因,专用架构可能更可取逻辑备份(如 mysqldump 或加载操作)不备份
mysql
系统架构。专用架构使出站复制更容易。
在专用架构中执行相关数据屏蔽任务时,用户或角色不需要
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 企业版数据屏蔽和脱敏支持以下设置和删除过程
考虑使用专用架构来存储数据屏蔽字典(请参见 使用专用架构安装)。
要设置 MySQL 企业版数据屏蔽和脱敏
运行
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 企业版数据屏蔽和脱敏
创建一个数据库来存储
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)
在启动时通过在
component_masking.masking_database
只读变量名前面添加PERSIST_ONLY
关键字来设置并持久化mask_db
模式。$> mysql -u root -p -e "SET PERSIST_ONLY component_masking.masking_database=mask_db" Enter password: (enter root password here)
修改变量后,重新启动服务器以使新设置生效。
当使用 mysql
系统模式时,要移除 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 企业版数据掩码和脱敏组件
运行
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;