配置动态脱敏

最近更新时间: 2026-03-13 09:03:00

操作场景

适用于Hive、Spark、Impala或Trino的select操作,指定用户只能获取掩码后的数据。
tbds基于ranger实现动态脱敏,支持行过滤(Row Level Filter)、列屏蔽(Masking)两种脱敏方式,如下

其中,行过滤就是基于where条件做过滤,列屏蔽支持的算法如下表说明
注意:个别算法不支持中文

脱敏算法

脱敏算法HiveSpark/Impala
复用Hive策略
Trino
Redact
用x屏蔽所有字母字符,用n屏蔽所有数字字符
支持支持支持
Partial mask: show last 4
只显示最后的4个字符
支持支持支持
Partial mask: show first 4
只显示开始的4个字符
支持支持支持
Hash
用值的哈希值替换原值,仅对文本类型生效
支持支持支持
Nullify
替换为NULL值
支持支持支持
Unmasked (retain original value)
原样返回
支持支持支持
Date: show only year
仅展示年,月份日期设置为01/01
支持支持支持
Custom
基于表达式自定义。 例子: cast(concat({col}, “test”) as {type})。 参考:https://cwiki.apache.org/confluence/display/hive/languagemanual+udf#LanguageManualUDF-DataMaskingFunctions
自定义屏蔽可以使用任何有效的 Hive UDF,要求返回与被屏蔽的列中的数据类型相同的数据类型
支持支持支持

配置流程

登录到ranger ui,选择hive service或trino service

选择脱敏标

新增脱敏策略

选择脱敏算法


配置行过滤



示例

原始数据

Redact - 用“x”屏蔽所有字母字符,用“n”屏蔽所有数字字符

Partial mask - show last 4 只显示最后的4个字符

Partial mask - show first 4 只显示开始的4个字符

Hash - 用值的哈希值替换原值,仅对文本类型生效

Nullify - 替换为NULL值

Unmasked (retain original value) - 原样返回

Date - show only year 仅展示年,月份日期设置为01/01