0765-7.0.3-如何用Ranger对Hive中的列使用自定义UDF脱敏

文档编写目的

在前面的文章中介绍了用Ranger对Hive中的行进行过滤以及针对列进行脱敏,在生产环境中有时候会有脱敏条件无法满足的时候,那么就需要使用自定义的UDF来进行脱敏,本文档介绍如何在Ranger中配置使用自定义的UDF进行Hive的列脱敏。

  • 测试环境

1.操作系统Redhat7.6

2.CDP DC7.0.3

3.集群已启用Kerberos

4.使用root用户操作


使用自定义UDF进行脱敏

2.1 授予表的权限给用户

1.在Ranger中创建策略,将ranger_test库下的t1表的select权限授予测试用户

0765-7.0.3-如何用Ranger对Hive中的列使用自定义UDF脱敏

0765-7.0.3-如何用Ranger对Hive中的列使用自定义UDF脱敏


2.使用测试用户查询t1表

0765-7.0.3-如何用Ranger对Hive中的列使用自定义UDF脱敏

目前用户ranger_user1拥有对t1表的select权限


2.2 授予使用UDF的权限给用户

1.将自定义UDF的jar包上传到服务器,并上传到HDFS,该自定义UDF函数的作用是将数字1-9按照a-j进行转换

0765-7.0.3-如何用Ranger对Hive中的列使用自定义UDF脱敏


2.使用hive用户创建UDF函数

0765-7.0.3-如何用Ranger对Hive中的列使用自定义UDF脱敏


3.测试UDF函数的使用

0765-7.0.3-如何用Ranger对Hive中的列使用自定义UDF脱敏


4.使用测试用户登录Hive并使用UDF函数,提示没有权限

0765-7.0.3-如何用Ranger对Hive中的列使用自定义UDF脱敏


5.创建策略,授予测试用户使用该UDF函数的权限

0765-7.0.3-如何用Ranger对Hive中的列使用自定义UDF脱敏

0765-7.0.3-如何用Ranger对Hive中的列使用自定义UDF脱敏


6.再次使用测试用户进行验证,使用UDF函数成功

0765-7.0.3-如何用Ranger对Hive中的列使用自定义UDF脱敏


2.3 配置使用自定义的UDF进行列脱敏

1.配置脱敏策略,使用自定义UDF的方式对phone列进行脱敏

0765-7.0.3-如何用Ranger对Hive中的列使用自定义UDF脱敏

0765-7.0.3-如何用Ranger对Hive中的列使用自定义UDF脱敏


2.使用ranger_user1查看t1表

0765-7.0.3-如何用Ranger对Hive中的列使用自定义UDF脱敏

由上图可见,自定义UDF脱敏成功


总结

1.对于任何可用的UDF函数,都可以在配置脱敏策略时使用自定义的方式配置进策略中,然后指定用户/用户组进行脱敏。

2.在创建脱敏策略之前,需要先确保对应的用户/用户组已经拥有对表以及UDF函数的权限,否则脱敏策略不会默认授予用户/用户组对于表和UDF函数的权限。

3.在配置脱敏策略时,方式选择Custom,在输入框中填入UDF函数的使用方式即可,例如:function_name(arg)


分享到:


相關文章: