目录
一、需求及说明
二、大数据平台权限管理明细表
1) 角色和用户分配
2) 角色和权限分配
三、创建hue用户及分组
1)用户登录及查看
2)增加Hue组及用户分配
四、创建linux用户及分组
1)创建linux用户账号和用户组(linux用户账号和用户组跟HUE用户账号和用户组一致)
2)附一些常用命令:
五、创建Sentry角色,角色授予linux组,给角色授权
1)Hue Security界面操作及授权方法
2)beeline命令行操作及授权方法
六、结果展示
1)管理员yuhui展示
2) 开发者wangxing展示
七、其他
1)Hue Application Permissions
2)ACL权限同步说明
3)Linux用户和组同步说明
一、需求及说明
大数据平台需要给不同用户,分配搭配不同组,每个组都有自己的权限。在本文中不仅可以对用户访问hive库进行授权,同时也可以用户访问对hdfs路径进行授权。
二、大数据平台权限管理明细表
1) 角色和用户分配
角色名称 | 用户名称 |
---|---|
guest | yuqin |
admin | yuhui |
dev | wangxing |
etl | xiaoting |
serviceLine | dongdong |
2) 角色和权限分配
其中:select只有查询功能,all是有增删改查功能
Role(Sentry) | Group(Linux) | Permissions(Hive) | Group(HUE) | Permissions(HUE) |
---|---|---|---|---|
guest(游客) | guest | aa select bb select; cc select; dd select; ee select; ff select; | guest | hive & impala |
dev(开发者) | dev | aa all; bb all; cc select; ee select; | dev | hive & impala |
admin | admin | All | admin | all |
etl | etl | aa select; bb select; cc all; ee all; | etl | hive & impala |
serviceLine | serviceLine | cc select; ee select; dd all; ff all; | serviceLine | hive & impala |
Hiveserver2权限和sentry权限对比,如下图:
三、创建hue用户及分组
1)用户登录及查看
添加用户如下:
2)增加Hue组及用户分配
因为权限太多为了方便截图,所以只给admin赋值权限,之后所有组都有权限
四、创建linux用户及分组
1)创建linux用户账号和用户组(linux用户账号和用户组跟HUE用户账号和用户组一致)
hue启动hive,所以hiveService2角色所在机器建立用户和组
hue启动impala,所以impala daemon角色所在机器建立用户和组
hue启动spark,同时hdfs是acl控制权限,所以namenode角色所在机器建立用户和组
#Linux中创建用户组
sudo groupadd guest
sudo groupadd dev
sudo groupadd admin
sudo groupadd etl
sudo groupadd serviceLine
#Linux中添加用户以及分配组
sudo useradd -g admin yuhui
sudo useradd -g guest yuqin
sudo useradd -g dev wangxing
sudo useradd -g etl xiaoting
sudo useradd -g serviceLine dongdong
#修改用户密码
passwd yuhui
passwd yuqin
passwd wangxing
passwd xiaoting
passwd dongdong
结果如下:
2)附一些常用命令:
(创建一个新用户且添加到已有组)
例:创建用户baidu且将用户baidu加入到etl组中,
sudo useradd -g etl baidu
(将一个已有的用户添加到已有组, 使此用户组成为该用户的附加用户组)
例:将用户 baidu加入到 users组中,
sudo usermod -a -G users baidu
(将一个已有的组移除已有用户)
从wheel组中删除 test用户
gpasswd wheel -d test
(用户的密码设置)
sudo passwd username
cat /etc/passwd 可以查看所有用户的列表
cat /etc/group 查看用户组
groups username 显示用户所属的用户组
五、创建Sentry角色,角色授予linux组,给角色授权
参考官网: https://www.cloudera.com/documentation/enterprise/5-14-x/topics/sg_hive_sql.html
1)Hue Security界面操作及授权方法
1.添加角色并分配给组
2.给角色授权
2)beeline命令行操作及授权方法
- 访问(hive节点),进入beeline命令行,建立连接
!connect jdbc:hive2://localhost:10000/
(用hue或hive或impala登录)
2.创建角色:create ROLE [role_name];
3.将角色授予组:GRANT ROLE role_name [, role_name]
TO GROUP (groupName) [,GROUP (groupName)]
4.将角色移除组:REVOKE ROLE role_name [, role_name]
FROM GROUP (groupName) [,GROUP (groupName)]
5.给角色授权(权限分三种:SELECT,INSERT,ALL):GRANT
(PRIVILEGE) [, (PRIVILEGE) ]
ON (OBJECT) (object_name)
TO ROLE (roleName) [,ROLE (roleName)]
给角色授权例子:
GRANT select on table dws.dws_t1_branch_master_a to role T1Consult;
GRANT select on database t1_project to role T1Consult;
创建和删除角色 CREATE ROLE ROLE_NAME
删除角色: DROP ROLE ROLE_NAME
把role_test1角色授权给jayliu用户,命令如下
grant role role_test1 to user jayliu;
查看jayliu用户被授权的角色,命令如下:
SHOW ROLE GRANT user jayliu;
取消jayliu用户的role_test1角色,操作命令如下:
revoke role role_test1 from user jayliu;
把某个库的所有权限给一个角色,角色给用户!
grant all on database user_lisi to role role_lisi;
grant role role_lisi to user lisi;
把某个库的权限直接给用户!
grant ALL ON DATABASE USER_LISI TO USER lisi;
收回 revoke ALLondatabase default from user lisi;
查看用户对数据看的权限 show grant user lisi on database user_lisi;
六、结果展示
1)管理员yuhui展示
yuhui是管理角色,所以可以看到所有数据,同时也可以操作所有数据。
2) 开发者wangxing展示
七、其他
1)Hue Application Permissions
https://www.cloudera.com/documentation/enterprise/5-14-x/topics/hue_adm_permissions.htm
2)ACL权限同步说明
使用spark访问集群进行数据查询,需要开启acl权限;目前已开启sentry权限与acl权限同步,故不需要单独设置。需要注意的是,sentry中的server和uri权限无法同步给acl,只能同步database和table的权限。
参考https://www.cloudera.com/documentation/enterprise/latest/topics/sg_hdfs_sentry_sync.html
3)Linux用户和组同步说明
可以通过build / env / bin / hue useradmin_sync_with_unix命令进行同步,但每次新建用户都需要执行一次,故暂不采取这种方式进行同步。
参考http://gethue.com/hadoop-tutorial-how-to-integrate-unix-users-and-groups/