文档首页/ MapReduce服务 MRS/ 组件操作指南(LTS版)/ 使用Hive/ Hive数据存储及加密配置/ 配置MetaStore支持表属性中的敏感信息加密存储
更新时间:2026-06-11 GMT+08:00
分享

配置MetaStore支持表属性中的敏感信息加密存储

操作场景

MetaStore支持创建表时,将表属性中的敏感信息在数据库中加密存储,查询时再将其解密返回引擎侧,此功能默认开启。

约束与限制

  • 此功能将表属性中的敏感信息加密后在数据库中存储,返回MetaStore客户端的表属性仍为明文。
  • 多个MRS集群对接同一个元数据库的场景不支持此功能,包含加密信息的表仅可本集群使用,其他集群无法解密。
  • 迁移场景包含加密表属性的表的元数据在新集群无法解密,需要在新集群重新创建表。
  • 该章节仅适用于MRS 3.6.0-LTS.1及之后版本。

配置表属性中的敏感信息加密存储

  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中执行showdesc语句查看表信息时,客户端返回结果中包含这些关键字的表属性将被脱敏,配置为空时不脱敏展示表属性原值,多个配置使用逗号分隔,不支持正则配置,默认值为“password,flink.properties.sasl.jaas.config”。

  2. 单击“保存”保存配置。
  3. 单击“实例”,勾选所有配置过期的实例,选择“更多 > 重启实例”,输入当前用户密码并单击“确定”重启所有配置过期的实例。
  4. 验证表属性中的敏感信息是否加密存储。以下示例为在集群已启用Kerberos认证(安全模式)的FlinkSQL Client中创建Kafka表进行演示。

    1. 登录Flink客户端所在节点,执行以下命令:

      切换至客户端安装目录:

      cd 客户端安装目录

      配置环境变量:

      source bigdata_env

      认证用户,集群未启用Kerberos认证(普通模式)请跳过该操作:

      kinit 组件业务用户
    2. 参考FlinkSQL Client提交作业章节,进入sql-client,修改并执行以下命令创建Kafka表:
      1. 创建Catalog,例如“myhive”:
        CREATE CATALOG myhive WITH (
        'type' = 'hive',
        'hive-version' = '3.1.0',
        'default-database' = 'default',
        'hive-conf-dir' = 'Hive配置文件目录'
        );
      2. 创建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";' );
    3. root用户登录DBServer主节点,执行以下命令登录Hive元数据库:
      1. 切换至omm用户:
        su - omm
      2. 配置环境变量:
        source $DBSERVER_HOME/.dbservice_profile
      3. 使用具备读hivemeta库的用户登录Hive元数据库,例如用户为metauser
        gsql -p 20051 -U metauser -W PASSWD -d hivemeta
    4. 使用实际的数据库名、表名替换到以下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 表属性加密存储

相关文档