在 Sentry 中授予创建外部 table
Grant create external table in Sentry
我有一个 4 节点的 cloudera 集群,上面启用了 kerberos,并带有保护 Hive 服务的哨兵。
当我使用 hive 用户创建 table 时,我能够这样做,因为它拥有数据库默认的所有权限。
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)
但是,当我尝试在具有相同用户配置单元的相同环境中创建外部 table 时,出现如下错误
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 的所有访问权限以及我正在读取外部数据 table。
有没有什么方法可以在哨兵中为用户提供创建外部 table 任何帮助都很好。
我可以通过如下方式将服务器上的所有权限授予 hive 用户来解决问题
grant all on server server1 to role hive;
配置单元角色已分配给配置单元用户。
编辑
关于此的更多帮助可以在配置单元配置中使用 属性 名称 "hive.sentry.server"
找到服务器名称
我有一个 4 节点的 cloudera 集群,上面启用了 kerberos,并带有保护 Hive 服务的哨兵。
当我使用 hive 用户创建 table 时,我能够这样做,因为它拥有数据库默认的所有权限。
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)
但是,当我尝试在具有相同用户配置单元的相同环境中创建外部 table 时,出现如下错误
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 的所有访问权限以及我正在读取外部数据 table。
有没有什么方法可以在哨兵中为用户提供创建外部 table 任何帮助都很好。
我可以通过如下方式将服务器上的所有权限授予 hive 用户来解决问题
grant all on server server1 to role hive;
配置单元角色已分配给配置单元用户。
编辑
关于此的更多帮助可以在配置单元配置中使用 属性 名称 "hive.sentry.server"
找到服务器名称