访问 Hive 数据有三种方式分别是 HiveServer2、Hive Client、HDFS。对于 HDFS 的访问权限控制可以参考 HDFS 配置章节,下面介绍 Ranger 对 Hive 数据的访问控制配置。
已创建 E-MapReduce(EMR)包含 Ranger 服务的集群,操作详见:创建集群。
Ranger UI 的登录界面操作,详见:Ranger 概述---Ranger Admin UI 访问。
集群详情 -> 服务列表 -> Ranger 服务详情 -> 服务概述页面,点击启用 Hive Plugin 开关。
按照提示重启 Hive 服务后生效。
集群管理界面 -> 访问链接 -> 点击 Ranger UI 的访问链接 -> 进入 Ranger Admin UI 界面。
输入 Ranger Admin UI 的登录密码。登录密码获取方式详见:Ranger 概述。
进入 Ranger admin -> Access Manager -> HADOOP SQL-> 点击 default_hive,进入权限编辑界面。
Add New Policy,赋予 ranger 用户访问 table: test001 的 select 权限,配置如下:
Hive 访问链接方式操作详见:Hive 连接方式。
beeline -u jdbc:hive2://<HiveServer2地址>:10000 -n ${username} -p ${password}
示例
# beeline 链接到 HiveServer2 beeline -u jdbc:hive2://<HiveServer2地址>:10000 -n ranger -p ranger # 测试ranger select test001 权限 select * from test001
如上图所示:没有配置 ranger 会出现 permission denied,配置完后可以正常查询
参数 | 语义 |
---|---|
Policy Name | 策略名称,可以自定义。 |
database | 添加 Hive 中的数据库,例如 testdb。 |
table | 添加表,例如test。 |
Hive Column | 添加列名。填写星号(*)时表示所有列。 |
Select Group | 指定添加此策略的用户组。 |
Select User | 指定添加此策略的用户。 |
Permissions | 选择授予的权限 |