操作场景
适用于Hive、Spark、Impala或Trino的select操作,指定用户只能获取掩码后的数据。
tbds基于ranger实现动态脱敏,支持行过滤(Row Level Filter)、列屏蔽(Masking)两种脱敏方式,如下
其中,行过滤就是基于where条件做过滤,列屏蔽支持的算法如下表说明
注意:个别算法不支持中文
脱敏算法
| 脱敏算法 | Hive | Spark/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