grant在sentry中创建外部表

xtfmy6hx  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(402)

我有一个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)

但是,当我试图用相同的用户配置单元在同一个env上创建一个外部表时,我得到了如下错误

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的所有访问。
有没有办法提供创建外部表给用户在哨兵任何帮助将是巨大的。

u4dcyp6a

u4dcyp6a1#

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

grant all on server server1 to role hive;

角色配置单元已分配给配置单元用户。
编辑
关于这个的更多帮助可以在配置单元配置中找到属性名为“hive.sentry.server”的服务器名

相关问题