3

私は kerberos が有効になっている 4 ノードの cloudera クラスターを持っており、セントリー セキュア Hive サービスを使用しています。

ハイブユーザーを使用してテーブルを作成すると、データベースのデフォルトに対するすべての権限があるため、作成できます。

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 へのすべてのアクセスも提供しました。

セントリーでユーザーに外部テーブルの作成を提供する方法はありますか?

4

1 に答える 1

0

以下のように、サーバー上のすべての権限をハイブユーザーに付与することで、問題を解決できます

grant all on server server1 to role hive;

ロール hive が hive ユーザーに割り当てられます。

編集

これに関する詳細なヘルプは、プロパティ名「hive.sentry.server」を使用してハイブ構成でサーバー名を見つけることができます

于 2016-01-15T09:12:02.000 に答える