文档编写目的
在前面的文章中介绍了用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权限授予测试用户
2.使用测试用户查询t1表
目前用户ranger_user1拥有对t1表的select权限
2.2 授予使用UDF的权限给用户
1.将自定义UDF的jar包上传到服务器,并上传到HDFS,该自定义UDF函数的作用是将数字1-9按照a-j进行转换
2.使用hive用户创建UDF函数
3.测试UDF函数的使用
4.使用测试用户登录Hive并使用UDF函数,提示没有权限
5.创建策略,授予测试用户使用该UDF函数的权限
6.再次使用测试用户进行验证,使用UDF函数成功
2.3 配置使用自定义的UDF进行列脱敏
1.配置脱敏策略,使用自定义UDF的方式对phone列进行脱敏
2.使用ranger_user1查看t1表
由上图可见,自定义UDF脱敏成功
总结
1.对于任何可用的UDF函数,都可以在配置脱敏策略时使用自定义的方式配置进策略中,然后指定用户/用户组进行脱敏。
2.在创建脱敏策略之前,需要先确保对应的用户/用户组已经拥有对表以及UDF函数的权限,否则脱敏策略不会默认授予用户/用户组对于表和UDF函数的权限。
3.在配置脱敏策略时,方式选择Custom,在输入框中填入UDF函数的使用方式即可,例如:function_name(arg)