Unity Catalog の権限とセキュリティ保護可能なオブジェクト

適用対象:「はい」のチェック マーク Databricks SQL Databricks Runtime 「はい」のチェック マーク Unity Catalog のみ

権限は、メタストア内のセキュリティ保護可能なオブジェクトを操作するためにプリンシパルに付与される権限です。 権限モデルとセキュリティ保護可能なオブジェクトは、Unity Catalog メタストアとレガシの Hive メタストアのどちらを使用しているかによって異なります。 この記事では、Unity Catalog の権限モデルについて説明します。 Hive メタストアを使用している場合は、「Hive メタストアの権限とセキュリティ保護可能なオブジェクト」を参照してください

注意

この記事では、特権モデル バージョン 1.0 の Unity Catalog の特権と継承モデルについて説明します。 パブリック プレビュー期間中 (2022 年 8 月 25 日より前) に Unity Catalog メタストアを作成した場合は、「特権継承へのアップグレード」に従って、Privilege Model バージョン 1.0 にアップグレードします。

セキュリティ保護可能なオブジェクト

セキュリティ保護可能なオブジェクトは、プリンシパルに権限を付与できる Unity Catalog メタストアで定義されているオブジェクトです。 オブジェクトに対する権限を管理するには、その所有者である必要があります。

構文

securable_object
  { CATALOG [ catalog_name ] |
    CONNECTION connection_name |
    EXTERNAL LOCATION location_name |
    FUNCTION function_name |
    METASTORE |
    SCHEMA schema_name |
    SHARE share_name |
    STORAGE CREDENTIAL credential_name |
    [ TABLE ] table_name |
    MATERIALIZED VIEW view_name |
    VIEW view_name |
    VOLUME volume_name
  }

CONNECTION の代わりに SERVERSCHEMA の代わりに DATABASE を指定することもできます。

パラメーター

  • CATALOGcatalog_name

    データ カタログ全体へのアクセスを制御します。

  • CONNECTION 接続名

    接続へのアクセスを制御します。

  • EXTERNAL LOCATIONlocation_name

    外部の場所へのアクセスを制御します。

  • FUNCTIONfunction_name

    ユーザー定義関数へのアクセスを制御します。

  • MATERIALIZED VIEWview_name

    重要

    この機能はパブリック プレビュー段階にあります。 アクセスにサインアップするには、このフォームに入力します

    具体化されたビューへのアクセスを制御します。

  • METASTORE

    ワークスペースにアタッチされている Unity Catalog メタストアへのアクセスを制御します。 メタストアの権限を管理する場合、SQL コマンドにメタストア名を含めないでください。 Unity Catalog は、ワークスペースにアタッチされているメタストアに対する権限を付与または取り消します。

  • REGISTERED MODEL

    MLflow 登録済みモデルへのアクセスを制御します。

  • SCHEMAschema_name

    スキーマへのアクセスを制御します。

  • STORAGE CREDENTIALcredential_name

    ストレージ資格情報へのアクセスを制御します。

  • SHAREshare_name

    受信者に対し、共有へのアクセスを制御します。

  • TABLEtable_name

    マネージドまたは外部のテーブルへのアクセスを制御します。 テーブルが見つからない場合、Azure Databricks で TABLE_OR_VIEW_NOT_FOUND エラーが発生します。

  • VIEWview_name

    ビューへのアクセスを制御します。 ビューが見つからない場合、Azure Databricks では TABLE_OR_VIEW_NOT_FOUND エラーが生じます。

  • VOLUMEvolume_name

    ボリュームへのアクセスを制御します。 ボリュームが見つからない場合、Azure Databricks によってエラーが発生します。

継承モデル

Unity Catalog のセキュリティ保護可能なオブジェクトは階層構造であり、権限は下位に継承されます。 つまり、カタログに対する権限を付与することで、カタログ内の現在および将来のすべてのスキーマに対する権限が自動的に付与されます。 同様に、スキーマに対して付与された権限は、そのスキーマ内の現在および将来のすべてのテーブルとビューに継承されます。

たとえば、スキーマに対する SELECT 権限をユーザーに付与すると、そのスキーマ内の現在および将来のすべてのテーブル、ビュー、具体化されたビューに対する SELECT 権限がそのユーザーに自動的に付与されます。

特権の種類

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

セキュリティ保護可能 特権
メタストア CREATE CATALOGCREATE CONNECTIONCREATE EXTERNAL LOCATIONCREATE PROVIDERCREATE RECIPIENTCREATE SHARECREATE STORAGE CREDENTIALSET SHARE PERMISSIONUSE MARKETPLACE ASSETSUSE PROVIDERUSE RECIPIENTUSE SHARE
Catalog ALL PRIVILEGESAPPLY TAGBROWSECREATE SCHEMAUSE CATALOG

既定では、すべてのユーザーの main カタログに USE CATALOG があります。

カタログ内のセキュリティ保護可能なオブジェクトには、次の特権の種類が適用されます。 カタログ レベルでこれらの権限を付与して、カタログ内の関連する現在および将来のオブジェクトに適用できます。

CREATE FUNCTIONCREATE TABLECREATE MODELCREATE VOLUMECREATE FOREIGN CATALOGREAD VOLUMEREFRESHWRITE VOLUMEEXECUTEMODIFYSELECTUSE SCHEMA
[スキーマ] ALL PRIVILEGES, APPLY TAG, CREATE FUNCTION, CREATE TABLE, CREATE MODEL, CREATE VOLUME, CREATE MATERIALIZED VIEW, USE SCHEMA

スキーマ内のセキュリティ保護可能なオブジェクトには、次の特権の種類が適用されます。 スキーマ レベルでこれらの権限を付与して、カタログ内の関連する現在および将来のオブジェクトに適用できます。

EXECUTEMODIFYSELECTREAD VOLUMEREFRESHWRITE VOLUME
テーブル ALL PRIVILEGESAPPLY TAGMODIFY, SELECT
具体化されたビュー ALL PRIVILEGESAPPLY TAGREFRESH, SELECT
表示 ALL PRIVILEGESAPPLY TAGSELECT
体積 ALL PRIVILEGESREAD VOLUMEWRITE VOLUME
外部の場所 ALL PRIVILEGESBROWSECREATE EXTERNAL TABLECREATE EXTERNAL VOLUMEREAD FILESWRITE FILESCREATE MANAGED STORAGE
ストレージの資格情報 ALL PRIVILEGESCREATE EXTERNAL LOCATIONCREATE EXTERNAL TABLEREAD FILESWRITE FILES
つながり ALL PRIVILEGESCREATE FOREIGN CATALOGUSE CONNECTION
機能 ALL PRIVILEGESEXECUTE
登録済みのモデル ALL PRIVILEGESAPPLY TAGEXECUTE
共有 SELECT (RECIPIENT に付与可能)
Recipient なし
プロバイダー なし
  • APPLY TAG

    オブジェクトにタグを適用および編集します。

  • ALL PRIVILEGES

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

    ALL PRIVILEGES が取り消されると、ALL PRIVILEGES 権限自体のみが取り消されます。 ユーザーは、個別に付与されたその他すべての権限を保持します。

  • BROWSE

    重要

    この機能はパブリック プレビュー段階にあります。

    カタログ エクスプローラー、スキーマ ブラウザー、検索結果、系列グラフ、information_schema、REST API を使用してオブジェクトのメタデータを表示します。 ユーザーには、親カタログに対する USE CATALOG 特権と親スキーマに対する USE SCHEMA は必要ありません。

  • CREATE CATALOG

    Unity Catalog メタストア内にカタログを作成します。

  • CREATE CONNECTION

    Unity Catalog メタストアで外部接続を作成します。

  • CREATE EXTERNAL LOCATION

    ストレージ資格情報を使用して外部の場所を作成します。 ストレージの資格情報に適用すると、ユーザーはストレージの資格情報を使用して外部の場所を作成できます。 この権限はメタストア上のユーザーにも付与して、そのメタストア内に外部の場所を作成できるようにする必要があります。

  • CREATE EXTERNAL TABLE

    ストレージ資格情報または外部の場所を使用して外部テーブルを作成します。

  • CREATE EXTERNAL VOLUME

    外部の場所を使用して外部ボリュームを作成します。

  • CREATE FOREIGN CATALOG

    外部接続でカタログを作成します。 その後、各外部カタログは、フェデレーション ターゲット システムで使用できるスキーマを公開します。

  • CREATE FUNCTION

    スキーマに関数を作成します。 ユーザーには、カタログに対する USE CATALOG 権限とスキーマに対する USE SCHEMA 権限も必要です。

  • CREATE MANAGED STORAGE

    ユーザーがカタログまたはスキーマ レベルでマネージド テーブルを格納する場所を指定でき、Unity Catalog メタストアの既定のルート ストレージがオーバーライドされます。

  • CREATE MATERIALIZED VIEW

    ユーザーがスキーマに具体化されたビューを作成できるようにします。 特権は継承されるため、CREATE MATERIALIZED VIEW はカタログに対して付与することもでき、これにより、ユーザーはカタログ内の既存または将来のスキーマにテーブルまたはビューを作成できます。

    ユーザーには、親カタログに対する USE CATALOG 特権と、親スキーマに対する USE SCHEMA も必要です。

  • CREATE MODEL

    ユーザーが MLflow 登録済みモデルをスキーマに作成できるようにします。 特権は継承されるため、CREATE MODEL はカタログに対して付与することもでき、これにより、ユーザーはカタログ内の既存または将来のスキーマに登録済みモデルを作成できます。

    ユーザーには、親カタログに対する USE CATALOG 特権と、親スキーマに対する USE SCHEMA も必要です。

  • CREATE PROVIDER

    (Delta Sharing データ受信者の場合) プロバイダーを Unity Catalog メタストアに作成します。

  • CREATE RECIPIENT

    (Delta Sharing データ プロバイダーの場合) 受信者を Unity Catalog メタストアに作成します。

  • CREATE SCHEMA

    カタログにスキーマを作成します。 また、ユーザーはカタログに対する USE CATALOG 権限が必要です。

  • CREATE SHARE

    (Delta Sharing データ プロバイダーの場合) 共有を Unity Catalog メタストアに作成します。

  • CREATE STORAGE CREDENTIAL

    Unity Catalog メタストアにストレージ資格情報を作成します。

  • CREATE TABLE

    スキーマにテーブルまたはビューを作成します。 ユーザーには、カタログに対する USE CATALOG 権限とスキーマに対する USE SCHEMA 権限も必要です。 外部テーブルを作成するために、ユーザーには外部の場所での CREATE EXTERNAL TABLE 特権またはストレージ資格情報が必要です。

  • CREATE VOLUME

    ボリュームをスキーマに作成します。 ユーザーには、カタログに対する USE CATALOG 権限とスキーマに対する USE SCHEMA 権限も必要です。 外部ボリュームを作成するには、ユーザーに外部の場所に対する CREATE EXTERNAL VOLUME 権限も必要です。

  • EXECUTE

    ユーザー定義関数を呼び出します。 ユーザーには、カタログに対する USE CATALOG 権限とスキーマに対する USE SCHEMA 権限も必要です。

  • MODIFY

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

  • READ FILES

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

  • READ VOLUME

    ボリューム内のファイルに対してクエリを実行します。

  • REFRESH

    ユーザーが親カタログに対する USE CATALOG、および親スキーマに対する USE SCHEMA を持っている場合、ユーザーが具体化されたビューを更新できるようにします。 ユーザーには、カタログに対する USE CATALOG 権限とスキーマに対する USE SCHEMA 権限も必要です。

  • SELECT

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

  • SET SHARE PERMISSION

    Delta Sharing では、このアクセス許可を USE SHAREUSE RECIPIENT (または受信者の所有権) と組み合わせることで、プロバイダー ユーザーは受信者に共有へのアクセス権を付与できるようになります。 USE SHARE と組み合わせることで、共有の所有権を別のユーザー、グループ、またはサービス プリンシパルに譲渡できます。

  • USE CATALOG

    必須ですが、カタログ内のオブジェクトを参照するには十分ではありません。 プリンシパルには、個々のセキュリティ保護可能なオブジェクトに対する特権も必要です。 ユーザーが BROWSE 特権を使用してオブジェクトのメタデータの読み取りを使用するためには必要ではありません。

  • USE CONNECTION

    メタストアで使用する場合、外部接続またはすべての外部接続のメタデータを読み取るために必要です。

  • USE MARKETPLACE ASSETS

    すべての Unity Catalog メタストアに対して既定で有効になっています。 Databricks Marketplace では、この権限に権限によって Marketplace リストで共有されているデータ製品に関して、ユーザーはインスタント アクセスを取得したり、アクセスを要求したりできます。 また、プロバイダーがデータ製品を共有するときに作成される読み取り専用カタログにユーザーがアクセスすることもできます。 この特権がないと、ユーザーには CREATE CATALOG および USE PROVIDER 特権またはメタストア管理者ロールが必要になります。 これにより、それらの強力なアクセス許可を持つユーザーの数を制限できます。

  • USE PROVIDER

    Delta Sharing では、受信者のユーザーに、受信者メタストア内のすべてのプロバイダーとその共有への読み取り専用アクセス権を付与します。 CREATE CATALOG 特権と組み合わせることで、メタストア管理者ではない受信者ユーザーは、共有をカタログとしてマウントできます。 これにより、強力なメタストア管理者ロールを持つユーザーの数を制限できます。

  • USE RECIPIENT

    Delta Sharing では、プロバイダー ユーザーに、プロバイダー メタストア内のすべての受信者とその共有への読み取り専用アクセス権を付与します。 これにより、メタストア管理者ではないプロバイダー ユーザーは、受信者の詳細、受信者の認証状態、プロバイダーが受信者と共有している共有の一覧を表示できます。

    Databricks Marketplace では、プロバイダー ユーザーはプロバイダー コンソールで一覧とコンシューマー要求を表示できます。

  • USE SCHEMA

    必須ですが、スキーマ内のオブジェクトを参照するには十分ではありません。 プリンシパルには、個々のセキュリティ保護可能なオブジェクトに対する特権も必要です。 ユーザーが BROWSE 特権を使用してオブジェクトのメタデータの読み取りを使用するためには必要ではありません。

  • USE SHARE

    Delta Sharing では、プロバイダーのユーザーに、プロバイダー メタストア内で定義されたすべての共有への読み取り専用アクセス権を付与します。 これにより、メタストア管理者ではないプロバイダー ユーザーは、共有を一覧表示し、共有内の資産 (テーブルとノートブック) を共有の受信者と共に一覧表示できます。

    Databricks Marketplace では、これにより、プロバイダー ユーザーはリストで共有されているデータに関する詳細を表示できます。

  • WRITE FILES

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

  • WRITE VOLUME

    ファイルをボリュームに直接 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 USE SCHEMA ON SCHEMA some_schema FROM `alf@melmak.et`;