適用対象:
Databricks SQL
Databricks Runtime
権限は、メタストア内のセキュリティ保護可能なオブジェクトを操作するためにプリンシパルに付与される権限です。
特権モデルとセキュリティ保護可能なオブジェクトは、Unity Catalog メタストアとレガシの Hive メタストアのどちらを使用しているかによって異なります。 この記事では、レガシ Hive メタストアの特権モデルについて説明します。 Unity Catalog を使用している場合は、「Unity Catalog の権限とセキュリティ保護可能なオブジェクト」を参照してください。
Hive メタストアのセキュリティ保護可能なオブジェクト
セキュリティ保護可能なオブジェクトは、プリンシパルに特権を付与できるメタストアで定義されているオブジェクトです。
オブジェクトに対する特権を管理するには、その所有者または管理者である必要があります。
構文
securable_object
{ ANY FILE |
CATALOG [ catalog_name ] |
{ SCHEMA | DATABASE } schema_name |
FUNCTION function_name |
[ TABLE ] table_name |
VIEW view_name
}
パラメーター
ANY FILE基になるファイルシステムへのアクセスを制御します。
CATALOGcatalog_nameデータ カタログ全体へのアクセスを制御します。
{ SCHEMA | DATABASE }schema_nameスキーマへのアクセスを制御します。
FUNCTIONfunction_name名前付き関数へのアクセスを制御します。
[ TABLE ]table_nameマネージドまたは外部のテーブルへのアクセスを制御します。
VIEWビュー名SQL ビューへのアクセスを制御します。
継承モデル
Hive メタストアのセキュリティ保護可能なオブジェクトは階層構造であり、特権は下位に継承されます。 つまり、CATALOG に対する特権を許可または拒否すると、カタログ内のすべてのスキーマに対する特権が自動的に許可または拒否されます。 同様に、スキーマ オブジェクトに付与された特権は、そのスキーマ内のすべてのオブジェクトによって継承されます。 このパターンは、セキュリティ保護可能なオブジェクトすべてに該当します。
テーブルに対するユーザー権限を拒否した場合、スキーマ内のすべてのテーブルを一覧表示しようとしても、ユーザーはテーブルを表示できません。 スキーマに対するユーザー権限を拒否した場合、カタログ内のすべてのスキーマを一覧表示しようとしてスキーマが存在することをユーザーに確認できません。
特権の種類
次の表に、どの特権がどのセキュリティ保護可能なオブジェクトに関連しているかを示します。
| 特権の種類 | 匿名関数 | 任意のファイル | CATALOG | SCHEMA | 機能 | TABLE | 眺め |
|---|---|---|---|---|---|---|---|
| 創造する | あり | あり | |||||
| 変更する | あり | あり | あり | あり | |||
| READ_METADATA | あり | あり | あり | あり | |||
| SELECT | あり | あり | あり | あり | あり | あり | あり |
| 使用 | あり | あり |
ALL PRIVILEGESセキュリティ保護可能なオブジェクトとその子オブジェクトに適用可能なすべての権限を、明示的に指定せずに付与または取り消すために使用されます。 これにより、アクセス許可のチェックが行われた時点で使用可能なすべての特権に拡張されます。
CREATEカタログまたはスキーマ内にオブジェクトを作成します。
MODIFYテーブルの COPY INTO、UPDATEDELETE、INSERT、または MERGE INTO を行います。
securable_object が
hive_metastoreであるか、その中のスキーマである場合、MODIFYを付与すると、そのセキュリティ保護可能なオブジェクト内のすべての現在および将来のテーブルとビューに対するMODIFYが許可されます。READ_METADATASHOW でセキュリティ保護可能なオブジェクトを検出し、DESCRIBE でそのオブジェクトに対して問い合わせます
セキュリティ保護可能なオブジェクトが
hive_metastoreカタログであるか、その中のスキーマである場合、READ_METADATAを付与すると、そのセキュリティ保護可能なオブジェクト内のすべての現在および将来のテーブルとビューに対するREAD_METADATAが許可されます。READ FILESSELECTテーブルまたはビューに対してクエリを実行するか、ユーザー定義または匿名の関数を呼び出すか、
ANY FILEを選択します。 ユーザーは、テーブル、ビュー、または関数のSELECTと、オブジェクトのスキーマとカタログのUSAGEが必要です。セキュリティ保護可能なオブジェクトが
hive_metastoreであるか、その中のスキーマである場合、SELECTを付与すると、そのセキュリティ保護可能なオブジェクト内のすべての現在および将来のテーブルとビューに対するSELECTが許可されます。USAGE必須ですが、カタログまたはスキーマ内のオブジェクトを参照するには十分ではありません。 プリンシパルには、個々のセキュリティ保護可能なオブジェクトに対する特権も必要です。
WRITE FILES
例
-- Grant a privilege to the user alf@melmak.et
> GRANT SELECT ON TABLE t TO `alf@melmak.et`;
-- Revoke a privilege from the general public group.
> REVOKE USAGE ON SCHEMA some_schema FROM `alf@melmak.et`;