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 の下では、何も表示されませんか?
助言がありますか?