Hadoop 授权在Sentry中创建外部表

Hadoop 授权在Sentry中创建外部表,hadoop,hive,apache-sentry,Hadoop,Hive,Apache Sentry,我有一个4节点的cloudera集群,上面启用了kerberos,并提供了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

我有一个4节点的cloudera集群,上面启用了kerberos,并提供了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)
grant all on server server1 to role hive;
我提供了对URI的所有访问,以及从我正在读取外部表的数据


是否有任何方法可以为sentry中的用户提供创建外部表的任何帮助都会很好

我可以通过将服务器上的所有权限授予配置单元用户来解决此问题,如下所示

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)
grant all on server server1 to role hive;
角色配置单元已分配给配置单元用户

编辑

有关这方面的更多帮助,可以在配置单元配置中找到属性名为“hive.sentry.server”的服务器名称