Welcome to aparke’s blog!
基于Hue管理用户对于hive数据表的操作权限
1、hue开通用户,只给该用户hive的访问权限
1)首先创建一个名aparke的hue用户,给该用户hive的访问权限
2)可以通过根据不同部门创建组的方式进行权限的控制,只开启hive的话,就是开启一个 beeswax.access:Launchthis application(3) 的权限
2.hive权限控制
1) 修改hive的配置项,在hive-site.xml的 Hive
客户端高级配置代码段(安全阀)和HiveServer2
高级配置代码段(安全阀)中添加如下配置项:<property>
<name>hive.security.authorization.enabled</name>
<value>true</value>
</property>
<property>
<name>hive.security.authorization.createtable.owner.grants</name>
<value>ALL</value>
</property>
<property>
<name>hive.security.authorization.task.factory</name>
<value>org.apache.hadoop.hive.ql.parse.authorization.HiveAuthorizationTaskFactoryImpl</value>
</property>
2) 给集群服务器添加用户(集群节点都要添加),测试的时候hue以及hive都是单节点的
useradd aparke |
3) 重启集群hive服务
hive --service metastore & |
hive配置文件修改权限设置后需要执行上面才可以启动hive服务
4) 打开hive client,给我们新添加的用户aparke添加权限
测试给了它一个hivetest数据库的创建以及查询的权限
CREATE ROLE aparke;(创建数据库角色)
GRANT ROLE aparke TO USER aparke;(将数据库角色赋予用户)
GRANT CREATE ON DATABASE hivetest TO role
aparke;(给角色hivetest库的建表权限)
GRANT SELECT ON DATABASE hivetest TO role aparke;(给查询权限)
GRANT ALL TO user root;(给root用户所有权限,创建hue的最高权限用户)
#REVOKE ALL on database hivetest from user aparke;(收回权限)
show roles;(查看已经有的角色)
SHOW GRANT user aparke;(产看用户已有权限)
SHOW GRANT user aparke ON database hivetest;(查看用户在hivetest数据库的已有权限)
SHOW GRANT user aparke ON c_vip;(查看用户在表的权限)
5)权限分类除掉上边列出来的建表和查询权限外,还有如下:
SELECT查询权限
INSERT 插入权限
UPDATE 更新权限
DELETE 删除权限
ALL 所有权限
BLOCK – 锁
INDEX – 索引
6) hive官网数据表权限链接:
https://cwiki.apache.org/confluence/display/Hive/DesignDocs
3.测试
重启hue后
使用aparke用户登录
可以正常操作hivetest
操作没有权限的表