2016-01-13 39 views
2

我有一个4节点的cloudera集群,启用kerberos并使用Sentry保护Hive服务。Grant在Sentry创建外部表

当我使用配置单元用户创建表时,我可以这样做,因为它具有数据库默认的所有权限。

0: jdbc:hive2://clnode4:10000/default> create table t123 (a int); 
No rows affected (0.204 seconds) 
0: jdbc:hive2://clnode4:10000/default> show tables from default; 
+--------------+--+ 
| tab_name | 
+--------------+--+ 
| t1   | 
| t12   | 
| t123   | 
+--------------+--+ 
3 rows selected (0.392 seconds) 

但是,当我试图创建具有相同的用户蜂巢我得到如下错误

0: jdbc:hive2://clnode4:10000/default> create external table t1_ex (a string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LOCATION 'hdfs:///user/olap/KyvosDemo/Distance.csv'; 
Error: Error while compiling statement: FAILED: SemanticException No valid privileges 
User hive does not have privileges for CREATETABLE (state=42000,code=40000) 

我提供的URI的所有访问,以及来自全被我同ENV一个外部表读取外部表的数据。

有没有什么办法可以在哨兵中为用户提供创建外部表格的帮助会很大。

回答

0

我能够通过授予服务器上的所有权限蜂巢用户如下

grant all on server server1 to role hive; 

角色蜂房被分配到蜂巢用户解决问题。

编辑

在这一个可以找到与属性名蜂巢配置的服务器名称“hive.sentry.server”

更多帮助