2016-11-04 17 views
0

私は主にビーラインを使用してハイブ0.14を使っています。管理者権限のないユーザーは、ハイブのオブジェクトアクセス権を管理できますか?

私は管理者ではありませんが、私はチームが使用できるいくつかのビューを作成したいと考えています。

誰もが読み書きできる共通のハイブデータベースがあります。他のユーザーが削除または変更できないようにするテーブル/ビューを作成している場合、他のユーザーにドロップ/書き込みアクセスを取り消すことは可能ですか?

+0

「ハイブ認証モデル」のトピックでは、3日間のセミナーが必要です。 「優先」モデルは時間とともに変化し、代替手段が存在する(参照:レンジャーまたはセントリプラグイン)。あなたが本当に管理者ではなく、どんな小さな文書も利用可能であることを見たくないなら、幸運を祈ってください。 –

答えて

1

ハイブテーブルへのアクセスは、HDFSアクセス権によって異なります。

新しいテーブルtbldbにあるデータベースに作成すると、新しいディレクトリ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を使用できるようになります。

+0

そのような場合もビューのですか? – paolov

+0

@ user55570はい、読み取りアクセス権を取り消した場合にのみ、ファイルを読み取ることができます。これは、あなたがテーブルを読むことができることを意味します。 –

+0

okですが、私が見ることができる限り、テーブルだけに関連するhdfsファイルがあります。ビューはありません。 – paolov

関連する問題