前言:本文是基于Apache Sentry做Hive权限管理的相关配置及测试
hue权限管理请参考:CDH hue用户权限管理,给用户hive权限_TracyGao01的博客-CSDN博客
hive自身的权限管理请参考:Hue管理用户对于hive数据表的操作权限_TracyGao01的博客-CSDN博客_hue不同登录账号对hive表的操作
CDH环境安装参考:Ubuntu14.04下安装部署CDH5.11.0_TracyGao01的博客-CSDN博客
环境及插件版本:
服务器:ubuntu 14.04
大数据环境:CDH-5.15.0
参考:
Hive SQL Syntax for Use with Sentry | 5.8.x | Cloudera Documentation
一、HDFS配置
- HDFS 访问控制列表 开启
- 检查 HDFS 权限 开启 .
- Sentry开启
二、Hive 同步
- hive Sentry开启
- Hive Impersonation 禁用 .
- 启用数据库中的存储通知 hive Metastore Server Default Group
- set sentry.hive.testing.mode=true
三、hive beeline权限测试
- sentry权限分配模式 备注:权限赋予角色,角色分给用户组,之后该用户组下所有用户都将拥有该权限
- 初始化状态所有用户都没有权限,第一步要给系统用户组hive赋予所有权限,这里连接beeline要用系统用户hive
Create role admin;
GRANT ALL ON SERVER server1 TO ROLE admin WITH GRANT OPTION;(server1为用于 Sentry 授权的服务器名称,默认为server1)
GRANT ROLE admin TO GROUP hive;(将角色服务用户组)
- 在hive用户组下创建新用户tracy,测试(所有节点都要添加tracy用户)
useradd tracy
passwd tracy
gpasswd -a tracy hive
-
以tracy用户登陆,测试权限正常
-
创建一个新的用户组,只给查询权限,并添加一个测试用户
//创建用户组及用户
groupadd -g 888 hive_select
useradd monica
passwd monica
gpasswd -a monica hive_select
//给权限
Create role select_test;
GRANT SELECT ON DATABASE test TO ROLE select_test;
GRANT ROLE select_test TO GROUP hive_select;
//测试权限 . . 这里可以看到,用户monica只有查询权限
-
给用户字段级别权限 .
-
权限操作参考:Hive SQL Syntax for Use with Sentry | 5.8.x | Cloudera Documentation
四、hue hive用护权限测试
- hue只给用户hive查询权限:CDH hue用户权限管理,给用户hive权限_TracyGao01的博客-CSDN博客
- 新建一个用户monica,对应步骤3的用户monica
- 用用户monica登陆 .
- 测试权限 . . 同样只有查询权限