Hive メタストアの特権とセキュリティ保護可能なオブジェクト

適用対象:「はい」のチェック マーク 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

    マネージドまたは外部のテーブルへのアクセスを制御します。

  • VIEWview_name

    SQL ビューへのアクセスを制御します。

継承モデル

Hive メタストアのセキュリティ保護可能なオブジェクトは階層構造であり、特権は下位に継承されます。 つまり、CATALOG に対する特権を許可または拒否すると、カタログ内のすべてのスキーマに対する特権が自動的に許可または拒否されます。 同様に、スキーマ オブジェクトに付与された特権は、そのスキーマ内のすべてのオブジェクトによって継承されます。 このパターンは、セキュリティ保護可能なオブジェクトすべてに該当します。

テーブルに対するユーザー特権を拒否した場合、ユーザーはスキーマ内のすべてのテーブルを一覧表示しようとしてもテーブルを表示できません。 スキーマに対するユーザー特権を拒否すると、カタログ内のすべてのスキーマを一覧表示しようとして、スキーマが存在することをユーザーに確認できません。

特権の種類

次の表に、どの特権がどのセキュリティ保護可能なオブジェクトに関連しているかを示します。

特権の種類 匿名関数 任意のファイル CATALOG 方式 FUNCTION TABLE VIEW
CREATE はい はい
MODIFY はい はい はい はい
READ_METADATA はい はい はい はい
SELECT はい はい はい はい はい はい はい
USAGE はい はい
  • ALL PRIVILEGES

    セキュリティ保護可能なオブジェクトとその子オブジェクトに適用可能なすべての権限を、明示的に指定せずに付与または取り消すために使用されます。 これにより、アクセス許可のチェックが行われた時点で使用可能なすべての特権に拡張されます。

  • CREATE

    カタログまたはスキーマ内にオブジェクトを作成します。

  • MODIFY

    テーブルの COPY INTOUPDATEDELETEINSERT、または MERGE INTO を行います。

    securable_object が hive_metastore であるか、その中のスキーマである場合、MODIFY を付与すると、そのセキュリティ保護可能なオブジェクト内のすべての現在および将来のテーブルとビューに対する MODIFY が許可されます。

  • READ_METADATA

    SHOW でセキュリティ保護可能なオブジェクトを検出し、DESCRIBE でそのオブジェクトに対して問い合わせます

    セキュリティ保護可能なオブジェクトが hive_metastore カタログであるか、その中のスキーマである場合、READ_METADATA を付与すると、そのセキュリティ保護可能なオブジェクト内のすべての現在および将来のテーブルとビューに対する READ_METADATA が許可されます。

  • READ FILES

    ストレージ資格情報または外部の場所を使用して、ファイルに直接クエリを実行します。

  • SELECT

    テーブルまたはビューに対してクエリを実行するか、ユーザー定義または匿名の関数を呼び出すか、ANY FILE を選択します。 ユーザーには、テーブル、ビュー、または関数に対する SELECT と、さらにオブジェクトのスキーマとカタログに対する USAGE が必要です。

    セキュリティ保護可能なオブジェクトが hive_metastore であるか、その中のスキーマである場合、SELECT を付与すると、そのセキュリティ保護可能なオブジェクト内のすべての現在および将来のテーブルとビューに対する SELECT が許可されます。

  • USAGE

    必須ですが、カタログまたはスキーマ内のオブジェクトを参照するには十分ではありません。 プリンシパルには、個々のセキュリティ保護可能なオブジェクトに対する特権も必要です。

  • WRITE FILES

    ストレージ資格情報または外部の場所によって管理されているファイルに対して直接 COPY INTO を行います。

-- 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`;