在Ranger中配置Hive/Impala的访问权限
在创建完安装了Ranger组件的MRS集群后,Hive/Impala的权限控制暂未集成在Ranger中,由于Hive与Impala配置方法一致,本章节主要介绍Hive组件如何集成在Ranger中。
- 登录Ranger WebUI界面。
- 在“Service Manager”中的HIVE处,单击添加Hive Service。
图1 添加Hive Service
- 请参考表1填写添加Hive Service的相关参数,未在表中列出的参数请保持默认值。
表1 参数说明 参数
说明
示例值
Service Name
创建的service name名称,固定填写:hivedev。
hivedev
Username
可以任意填写。
admin
Password
可以任意填写。
-
jdbc.driverClassName
连接hive的驱动类,固定填写:org.apache.hive.jdbc.HiveDriver。
org.apache.hive.jdbc.HiveDriver
jdbc.url
连接hive的url,格式为ZooKeeper Mode:
jdbc:hive2://<host>:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2
其中<host>为ZooKeeper地址,ZooKeeper地址可通过登录MRS Manager然后选择“服务管理 > ZooKeeper > 实例”,查看ZooKeeper实例的“管理IP”地址获取。
jdbc:hive2://xx.xx.xx.xx:2181,xx.xx.xx.xx:2181,xx.xx.xx.xx:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2
图2 Create hivedev
- 单击“Add”添加服务。
- 启动Ranger Hive Plugin,授权Ranger管理Hive。
- 在MRS控制台,单击集群名称进入集群详情页面。
- 选择“组件管理”。
- 选择“Hive > 服务配置”,将“基础配置”切换为“全部配置”。
- 搜索配置“hive.security.authorization”,修改如下两个配置:
- hive.security.authorization.enabled = true
- hive.security.authorization.manager = org.apache.ranger.authorization.hive.authorizer.RangerHiveAuthorizerFactory
- 单击“保存配置”,并勾选“重新启动受影响的服务或实例。”重启Hive服务。
- 添加访问控制策略,即Policy。
- 登录Ranger WebUI界面。
- 在HIVE区域单击已添加的服务名称“hivedev”。
- 单击“Add New Policy”,新增访问控制策略。
- 参考表2配置参数,未在表中列出的参数请保持默认值。
表2 参数说明 参数
说明
示例值
Policy Name
策略名称。
Policy001
database
该策略允许访问的数据库名称。
test
table
该策略允许访问的数据库对应的表名称。
table1
Hive Column
该策略允许访问的数据库对应的表的列名。
name
Allow Conditions
- Select Group:该策略允许访问的用户组。
- Select User:该策略允许访问的用户组中的用户。
- Permissions:该策略允许用户使用的权限。
- Select Group:testuser
- Select User:testuser
- Permissions:Create和select
图3 新增hivedev的访问控制策略
- 单击“Add”,完成策略添加,依据如上Policy示例,testuser用户组中的testuser用户将对Hive的“test”数据库中的表“table1”的“name”列有Create和select的权限,而对于其他列则没有任何的访问权限。
- 参见从零开始使用Hive登录hive客户端,验证Ranger是否已经完成集成Hive。