更新时间:2026-06-11 GMT+08:00
配置MetaStore支持表属性中的敏感信息加密存储
操作场景
MetaStore支持创建表时,将表属性中的敏感信息在数据库中加密存储,查询时再将其解密返回引擎侧,此功能默认开启。
约束与限制
- 此功能将表属性中的敏感信息加密后在数据库中存储,返回MetaStore客户端的表属性仍为明文。
- 多个MRS集群对接同一个元数据库的场景不支持此功能,包含加密信息的表仅可本集群使用,其他集群无法解密。
- 迁移场景包含加密表属性的表的元数据在新集群无法解密,需要在新集群重新创建表。
- 该章节仅适用于MRS 3.6.0-LTS.1及之后版本。
配置表属性中的敏感信息加密存储
- 登录Manager页面,选择“集群 > 服务 > Hive > 配置 > 全部配置”,在搜索框中搜索并修改以下参数:
- metastore-ext.encrypt.parameters.enable:是否加密表属性中的敏感信息。
- true(默认值):加密表属性中的敏感信息,即表属性中的敏感信息将在数据库中密文存储。
- false:不加密表属性中的敏感信息,即表属性中的敏感信息将在数据库中明文存储,请谨慎操作。
- metastore-ext.encrypt.parameters:需要加密的表属性,多个表属性使用逗号分隔,不支持正则配置,默认值为“password,flink.password,flink.properties.sasl.jaas.config”。
- hive-ext.mask.parameters:Hive中执行show、desc语句查看表信息时,客户端返回结果中包含这些关键字的表属性将被脱敏,配置为空时不脱敏展示表属性原值,多个配置使用逗号分隔,不支持正则配置,默认值为“password,flink.properties.sasl.jaas.config”。
- metastore-ext.encrypt.parameters.enable:是否加密表属性中的敏感信息。
- 单击“保存”保存配置。
- 单击“实例”,勾选所有配置过期的实例,选择“更多 > 重启实例”,输入当前用户密码并单击“确定”重启所有配置过期的实例。
- 验证表属性中的敏感信息是否加密存储。以下示例为在集群已启用Kerberos认证(安全模式)的FlinkSQL Client中创建Kafka表进行演示。
- 登录Flink客户端所在节点,执行以下命令:
cd 客户端安装目录
配置环境变量:
source bigdata_env
认证用户,集群未启用Kerberos认证(普通模式)请跳过该操作:
kinit 组件业务用户
- 参考FlinkSQL Client提交作业章节,进入sql-client,修改并执行以下命令创建Kafka表:
- 创建Catalog,例如“myhive”:
CREATE CATALOG myhive WITH ( 'type' = 'hive', 'hive-version' = '3.1.0', 'default-database' = 'default', 'hive-conf-dir' = 'Hive配置文件目录' );
- 创建Kafka表:
CREATE TABLE myhive.`default`.KafkaSource ( `user_id` VARCHAR, `user_name` VARCHAR, `age` INT ) WITH ( 'connector' = 'kafka', 'topic' = 'Topic名称', 'properties.bootstrap.servers' = 'Kafka Broker节点:端口号', 'properties.group.id' = 'testGroup', 'scan.startup.mode' = 'latest-offset', 'format' = 'csv', 'properties.security.protocol' = 'SASL_PLAINTEXT', 'properties.sasl.mechanism' = 'PLAIN', 'properties.sasl.jaas.config' = 'org.apache.kafka.common.security.plain.PlainLoginModule required username="xxx" password="xxx";' );
- 创建Catalog,例如“myhive”:
- 以root用户登录DBServer主节点,执行以下命令登录Hive元数据库:
- 切换至omm用户:
su - omm
- 配置环境变量:
source $DBSERVER_HOME/.dbservice_profile
- 使用具备读hivemeta库的用户登录Hive元数据库,例如用户为metauser:
gsql -p 20051 -U metauser -W PASSWD -d hivemeta
- 切换至omm用户:
- 使用实际的数据库名、表名替换到以下SQL中并执行:
select * from TABLE_PARAMS where exists(select 1 from DBS inner join TBLS on DBS.NAME='数据库名' and TBLS.TBL_NAME='表名' and DBS.DB_ID=TBLS.DB_ID where TBLS.TBL_ID=TABLE_PARAMS.TBL_ID);
命令执行后,可以查看到“flink.properties.sasl.jaas.config”属性已加密存储。
图1 表属性加密存储
- 登录Flink客户端所在节点,执行以下命令:
父主题: Hive数据存储及加密配置