2

CDH4 バージョンを実行している Hadoop クラスターがあります。ハイブでユーザーに権限を付与する際に問題が発生しています。私の要件は、Linuxユーザーごとに、ハイブにデータベースを作成し、そのユーザー(またはグループ)のみにアクセスを許可することです。そのため、他のユーザーはそれらのテーブルを表示したり、テーブルを操作したりできません。選択的なアクセス許可を持つユーザーごとに、HDFS に個別のフォルダーが既にあります。これが私がやったことです:

  • My Hive は、そのメタストアとして oracle 11g に接続されています。テーブルはすべて作成されます。

  • /etc/hive/conf/hive-site.xml を変更し、"hive.security.authorization.enabled" = true を設定します。また、「hive.security.authorization.createtable.owner.grants」= すべて。

  • 同じグループ名、つまりdemo1とdemo2でLinuxユーザーのdemo1とdemo2を作成しました。ルートとしてハイブプロンプトにログインし、2つのデータベースdemo1dbとdemo2dbを作成しました。

  • 2 つのロール、demo1_role と demo2_role を作成しました グループをロールに割り当てました。つまり、demo1 グループは demo1_role に属し、demo2 グループは demo2_role に属します。

  • demo1db の demo1_role と demo2db の demo2_role に「すべて」を付与します。

  • demo1 としてログインし、ハイブ プロンプトに入ります。テーブル demo1db.table1 を作成します。

  • demo2 としてログインし、ハイブ プロンプトに入ります。テーブル demo1db.table1 を削除します。そして、ドロップすることができます!!!!. demo2 は demo1 が制御するフォルダーにアクセスできないため、HDFS 内の関連データを削除することはできません。テーブルがメタストアから削除されます。demo2 ユーザーでテーブルを作成し、demo1 がそれ​​を削除できる場合も同じことが起こります。

私は何を間違えましたか?また、「テーブルを表示する」ときに気付きました。demo1 の下では、何も表示されませんか?

助言がありますか?

4

0 に答える 0