私は主にビーラインを使用してハイブ0.14を使っています。管理者権限のないユーザーは、ハイブのオブジェクトアクセス権を管理できますか?
私は管理者ではありませんが、私はチームが使用できるいくつかのビューを作成したいと考えています。
誰もが読み書きできる共通のハイブデータベースがあります。他のユーザーが削除または変更できないようにするテーブル/ビューを作成している場合、他のユーザーにドロップ/書き込みアクセスを取り消すことは可能ですか?
私は主にビーラインを使用してハイブ0.14を使っています。管理者権限のないユーザーは、ハイブのオブジェクトアクセス権を管理できますか?
私は管理者ではありませんが、私はチームが使用できるいくつかのビューを作成したいと考えています。
誰もが読み書きできる共通のハイブデータベースがあります。他のユーザーが削除または変更できないようにするテーブル/ビューを作成している場合、他のユーザーにドロップ/書き込みアクセスを取り消すことは可能ですか?
ハイブテーブルへのアクセスは、HDFSアクセス権によって異なります。
新しいテーブルtbl
をdb
にあるデータベースに作成すると、新しいディレクトリdb/tbl
が作成されます。
あなたは、たとえば、そのディレクトリの使用hadoop fs -chmod
への書き込みグループのアクセスを制限したい場合:
hadoop fs -chmod 750 db/tbl
を使用すると、テーブルがデータベース内に配置されている場所を知りたい場合は、あなたがなしでテーブルを作成することができます場所を指定し、describe formated tbl
を実行します。
あなたは常にhadoop fs -ls db
について見解を実行することにより、テーブルのアクセス権が何であるかを確認できます。
ストレージベースの認証は、データベース、テーブルやパーティションのレベルでのアクセス制御を提供することができるが、 ファイルシステムによって提供されるアクセス制御がディレクトリおよびファイルのレベルにあるため、列およびビューなどのより細かいレベルでの許可を制御することはできません。ファイングレイン・アクセス制御の前提条件は、ユーザーが必要とする(またはアクセスする)列と行だけを提供できるデータ・サーバーです。ファイルシステムアクセスの場合、ファイル全体がユーザーに提供されます。 HiveServer2は、SQLを使用して行と列を理解し、SQLクエリが要求した列と行だけを処理できるAPIを備えているため、この条件を満たすことができます。
SQL Standards Based Authorization(Hive 0.13.0、HIVE-5837で導入)を使用して、きめ細かなアクセス制御を有効にすることができます。これは、認可のためのSQL標準に基づいており、親しんでいる許可/取り消しステートメントを使用してアクセスを制御します。 HiveServer2の設定で有効にする必要があります。
ハイブコマンドラインでは、SQL標準ベースの承認が無効になっています。これは、ユーザーがHDFSに直接アクセスできるため、ハイブのアクセス制御ポリシーを使用するHiveコマンドラインではセキュアなアクセス制御が不可能であるため、SQL標準ベースの認証チェックを簡単に回避したり、完全に無効にすることもできます。これを無効にすると、ユーザーに誤ったセキュリティ感覚が与えられなくなります。
要するに、SQL Standards Based Authorizationを設定で有効にする必要があります。
次に、ビューでREVOKE
を使用できるようになります。
「ハイブ認証モデル」のトピックでは、3日間のセミナーが必要です。 「優先」モデルは時間とともに変化し、代替手段が存在する(参照:レンジャーまたはセントリプラグイン)。あなたが本当に管理者ではなく、どんな小さな文書も利用可能であることを見たくないなら、幸運を祈ってください。 –