Apache Ranger对Hive数据脱敏-行过滤Row Filter、列屏蔽Column Masking

本文介绍ApacheRanger对Hive数据的行过滤RowFilter和列屏蔽ColumnMasking两种脱敏方式,支持Redact、Partialmask、Hash等多种策略,适用于HiveServer2使用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

Apache Ranger对Hive数据支持两种脱敏方式:行过滤Row Filter、列屏蔽Column Masking。它可对Select结果进行行列级别数据脱敏,从而达到对用户屏蔽敏感信息的目的。

注意:该功能只适用于HiveServer2使用场景(如Beeline/JDBC/Hue等途径执行的Select),对Hive Cli(如Hive -e)和直接读取Hive表的HDFS文件场景不适用。

行过滤Row Filter

行过滤允许Ranger为用户指定Fliter表达式(实际上就是Where子句)。如:只允许ranger_acl_test用户查看brandname="Contoso"的数据,可如下配置:

ranger_datamask_rowfilter1.png

列屏蔽Column Masking

列屏蔽允许Ranger为用户配置列的mask策略。mask支持以下8种策略:

  • Redact策略 - 用x屏蔽所有字母字符,用n屏蔽所有数字字符。

  • Partial mask: show last 4 策略 - 仅显示最后四个字符,其他用x代替。

  • Partial mask: show first 4 策略- 仅显示前四个字符,其他用x代替。

  • Hash策略- 用值的哈希值替换原值。

  • Nullify策略 - 用NULL值替换原值。

  • Unmasked (retain original value)策略 - 原样显示。

  • Date: show only year策略 – 仅显示日期字符串的年份部分,并将月份和日期默认为01/01。

  • Custom策略 – 可使用任何有效Hive UDF(返回与被屏蔽的列中的数据类型相同的数据类型)来自定义策略。

如:Hash策略

ranger_datamask_columnmask1.png

测试数据脱敏

场景:

  1. 用户ranger_acl_test只能select表data_warehouse.dim_productbrandname="Contoso"这些行的数据。

  2. 用户ranger_acl_test在select表data_warehouse.dim_product中列productname的数据时,只显示值的Hash值。

配置:

  1. 行过滤配置

ranger_hive_rowfilter_policy1.png

  1. 列屏蔽配置

ranger_hive_columnmask_policy1.png

验证

ranger_acl_test用户使用beeline连接HiveServer2,执行以下语句,并得到如下结果:

ranger_hive_rowfilter_columnmask_verify.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值