0768-7.0.3-如何在Kerberos环境下用Ranger给Hive授权

2020-05-24 10:41:52 浏览数 (1)

文档编写目的

本篇文章主要介绍如何在CDP DC7.0.3集群中使用Ranger给Hive授权,包括对Hive中的数据库、表、列的授权。

  • 测试环境

1.操作系统Redhat7.6

2.CDP DC7.0.3

3.集群已启用Kerberos

4.使用root用户操作

使用Ranger为Hive授权

2.1 测试前置准备

1.在集群内所有节点创建两个用户ranger_user1,并创建对应的Kerberos用户,用于授权测试使用

2.使用hive用户登陆Beeline,创建一个测试库以及一个测试表,并将测试数据导入表中

·使用hive用户登陆Kerberos并连接Beeline

·创建测试库和测试表

·将测试数据load到测试表中

2.2 测试Ranger中对于Hive的各种授权

2.2.1 授权前测试

1.使用ranger_user1登陆Kerberos并链接Beeline进行测试

由上图可以看出,ranger_user1在ranger_test库中只有一个show tables的权限,其他SELECT、UPDATE、DROP等权限都没有。

2.2.2 测试select权限

1.新建策略如下:

配置完成后保存策略

2.使用ranger_user1进行测试如下:

由上图可知,授予的select权限成功

3.修改策略,针对字段进行授权

4.对基于字段的授权进行验证

由上图可见,由于只授予了name字段的select权限,所以只能查看name字段。

2.2.3 测试update权限

1.修改策略如下:

修改完成后保存策略

2.使用ranger_user1进行测试如下:

由此可见,授予的update权限成功

2.2.4 测试drop权限

1.修改策略如下:

2.进行drop操作

可以看到,drop权限赋予成功

2.2.5 测试create权限

1.未修改策略前,使用ranger_user1进行create操作

2.修改策略如下:

修改完成后保存策略

3.使用ranger_user1进行create操作

由上图可知,授予的create权限成功

2.2.6 测试alter权限

1.未修改策略前,进行alter操作

2.修改策略如下:

3.进行alter操作

由上图可见,alter权限赋予成功

2.3 Ranger授权Hive与HDFS权限

1.授予用户ranger_user1对ranger_test库下所有表的所有权限

2.使用用户ranger_user1查看对应的HDFS路径

可以看到,授予了ranger_user1对于ranger_test库的所有权限后,仍然无法查看对应的HDFS路径

3.创建HDFS中的策略,授予用户ranger_user1对于ranger_test库所在HDFS路径的权限

4.再次使用ranger_test1查看库所对应的HDFS路径

由上图可见,查看成功

总结

1.在Ranger中,针对Hive中表的insert操作对应的权限是update,并不是write权限。

2.在Ranger中有一些默认存在的策略,对于hive、impala、hue等系统用户,默认拥有所有的权限,默认的策略允许所有用户创建数据库,以及所有用户在default库下拥有查询和建表权限。

3.在Ranger中赋予用户Hive中库和表的权限,并不会使用户拥有对应的HDFS权限,如果需要访问HDFS路径,还是需要通过Ranger给HDFS授权。

0 人点赞