其他分享
首页 > 其他分享> > 离线电商数仓(六十)之元数据管理(八)Ranger (三)使用Ranger对Hive进行权限管理

离线电商数仓(六十)之元数据管理(八)Ranger (三)使用Ranger对Hive进行权限管理

作者:互联网

1.1 权限控制初体验

查看默认的访问策略,此时只有admin用户拥有对所有库、表和函数的访问权限

 

 

验证:使用atguigu用户尝试进行登录,登录成功后,执行查询语句:

之后使用admin用户进行登录,可以完成Hive的所有操作

 

 

1.2 为用户配置权限

例如为atguigu用户配置default库emp和dept表的所有列的读权限,为jack用户配置default库emp和dept表的所有列的读写权限。

点击Add New Policy按钮:

 

 

填写策略名称,以及此策略设计的库、表、列等信息:

 

 

填写设计此策略的允许的用户权限:

 

 

之后点击Add添加按钮,发现在面板上已经添加完成:

 

 

测试:beeline无需重新连接hiveserver2,再次执行查询,发现atguigu用户已经可以进行查询,但是只能查询自己有权限查询的表信息

 

 

对以下两个表,有读权限,没有写权限:

 

 

再次测试jack用户,尝试向dept表写入数据后查询:

0: jdbc:hive2://hadoop103:10000> insert into table dept values(50,'SECURITY',1800);

0: jdbc:hive2://hadoop103:10000> select * from dept;

 

 

1.3 脱敏操作

通过脱敏操作可以限制用户对某一列的访问,将敏感数据不暴露给用户!

案例:指定atguigu用户在查询emp表时,对hiredate的年月部分脱敏!

首先需要保证用户对指定的列有访问权限,可以参考5.2进行配置!

点击Masing标签,再点击Add New Policy

 

 

指定表和列

 

 

指定用户和脱敏操作:

 

 

之后点击save按钮!那么只有atguigu用户在查询时,会触发此策略!

 

 

1.4 行级别过滤

通过行级别过滤可以将表中的数据进行条件过滤后再暴露给用户!

例如:atguigu用户只允许查询emp表中job类型为SALESMAN的用户信息。

同理,行级别过滤也要求用户对指定表有access权限!参考5.2的配置!

选择Row Level Filter标签,点击Add New Policy:

 

 

选择对应的库和表:

 

 

添加过滤规则和用户:

 

 

之后点击add按钮!

验证:

 

 

更多配置,可以参考官网介绍:https://cwiki.apache.org/confluence/display/RANGER/Row-level+filtering+and+column-masking+using+Apache+Ranger+policies+in+Apache+Hive

标签:商数,dept,离线,用户,查询,Ranger,点击,atguigu,权限
来源: https://www.cnblogs.com/qiu-hua/p/13621316.html