Hue管理用户对于hive数据表的操作权限
1、 hue开通用户,只给该用户hive的访问权限
http://blog.csdn.net/u012551524/article/details/79392439
首先创建一个名pbdd的hue用户,给该用户hive的访问权限
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) 给集群ubuntu服务器添加用户(集群节点都要添加)
useraddpbdd
passwdpbdd
gpasswd -a pbdd Hadoop
3) 重启集群hive服务
4) 打开hive client,给我们新添加的用户pbdd添加权限
CREATE ROLE pbdd;(创建数据库角色)
GRANT ROLE pbdd TO USER pbdd;(将数据库角色赋予用户)
GRANT CREATE ON DATABASE test TO role pbdd;(给角色test库的建表权限)
GRANT SELECT ON DATABASE test TO role pbdd;(给查询权限)
GRANT ALL TO user root;(给root用户所有权限)
REVOKE ALL on database test from user pbdd;(收回权限)
show roles;(查看已经有的角色)
SHOW GRANT user pbdd;(产看用户已有权限)
SHOW GRANT user pbdd ON database test;(查看用户在test数据库的已有权限)
SHOW GRANT user pbdd ON c_vip;(查看用户在表的权限)
备注:
1) show grant把用户换成角色就是查询角色的权限,例:show grant role pbdd;
2) 权限分类除掉上边列出来的建表和查询权限外,还有如下:
SELECT查询权限
INSERT 插入权限
UPDATE 更新权限
DELETE 删除权限
ALL 所有权限
BLOCK – 锁
INDEX – 索引
3) hive官网数据表权限链接:
https://cwiki.apache.org/confluence/display/Hive/DesignDocs
3、 hdfs目录权限修改(第二步配置完成测试没问题可忽略这一步)
1) Hadoop fs -chmod 1777 /user/spark/applicationHistory
这里这个权限主要是hive在提交任务时需要该目录的写入权限
2) Hadoop fs -chmod 1777 /user/hive
这里很简单,要给用户hive的操作权限
3) Hadoop fs -chmod 777 /user
给user目录权限
4、 测试
场景:给pbdd用户一个hive test库的查询权限
1) 打开hue,用我们第一步创建的用户pbdd登陆:
2) 访问hive的test数据库:
查询一张test库的表:
ok,没问题
创建一张表:
没有权限
备注:这样我们就可以借助hue控制用户对于集群数据的访问权限,hbase我们也可以通过hive外部表的形式控制访问