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

この記事では、Unity Catalogのセキュリティ保護可能なオブジェクトと、それらに適用される権限について説明します。Unity Catalogで権限を付与する方法については、「権限の表示、付与、および取り消し」を参照してください。

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

セキュリティ保護可能なオブジェクトは、Unity Catalogメタストアで定義され、プリンシパル(ユーザー、サービスプリンシパル、またはグループ)に権限を付与できるオブジェクトです。Unity Catalog内のセキュリティ保護可能なオブジェクトは階層構造です。

Unityカタログのオブジェクト階層

セキュリティ保護対象オブジェクトには次のものがあります。

  • METASTORE:メタデータのトップレベルコンテナです。各Unity Catalogメタストアでは、データを整理する3つのレベルの名前空間(catalogschematable)が公開されます。

    メタストアの権限を管理する場合は、SQLコマンドにメタストア名を含めません。Unity Catalogは、ワークスペースにアタッチされたメタストアに対して権限を付与または取り消します。たとえば、次のコマンドは、engineeringという名前のグループに、ワークスペースにアタッチされたメタストアにカタログを作成する能力を付与します。

    GRANT CREATE CATALOG ON METASTORE TO engineering
    
  • CATALOG:データ資産を整理するために使用されるオブジェクト階層の最初のレイヤー。フォーリンカタログは、レイクハウスフェデレーションシナリオで外部データシステム内のデータベースをミラーリングする特別なカタログタイプです。

  • SCHEMA:データベースとも呼ばれます。オブジェクト階層の第2層であり、テーブルとビューが格納されます。

  • TABLE:オブジェクト階層の最下位レベルのテーブルは、外部(選択したクラウドストレージ内の外部ロケーションに格納)またはマネージドテーブル(Databricks用に明示的に作成したクラウドストレージ内のストレージコンテナーに格納される)にすることができます。

  • VIEW:スキーマに含まれる1つ以上のテーブルに対するクエリーから作成された読み取り専用オブジェクトです。

  • VOLUME:オブジェクト階層の最下位レベルであるボリュームは、外部(選択したクラウドストレージの外部ロケーションに格納)または管理(Databricks用に明示的に作成したクラウドストレージ内のストレージコンテナーに格納される)にすることができます。

  • FUNCTION: スキーマ内に含まれる ユーザー定義関数 または MLflow 登録モデル

  • モデル: MLflow に登録されたモデルは 、特定の種類の関数です。 モデルはカタログ エクスプローラで他の関数とは別にリストされますが、SQL を使用してモデルに対する権限を付与する場合は、 GRANT ON FUNCTIONを使用します。

  • EXTERNAL LOCATION:ストレージ資格情報への参照と、Unity Catalogメタストア内に含まれるクラウドストレージパスを含むオブジェクト。

  • STORAGE CREDENTIAL:Unity Catalogメタストアに含まれるクラウドストレージにアクセスするための長期的なクラウド資格情報をカプセル化するオブジェクト。

  • CONNECTION:レイクハウスフェデレーションシナリオで外部データベースシステムにアクセスするためのパスと資格情報を指定するオブジェクト。

  • SHARE:Delta Sharingを使用して共有するテーブルの論理グループ。共有はUnity Catalogメタストア内に含まれます。

  • RECIPIENT:Delta Sharingを使用してデータを共有できる組織またはユーザーグループを識別するオブジェクト。これらのオブジェクトはUnity Catalogメタストア内に含まれています。

  • PROVIDER:Delta Sharingを使用してデータを共有できるようにした組織を表すオブジェクト。これらのオブジェクトはUnity Catalogメタストア内に含まれています。

Unity Catalog内のセキュリティ保護可能なオブジェクト別の権限タイプ

次の表に、Unity Catalogのセキュリティ保護可能なオブジェクトそれぞれに適用される権限タイプを示します。Unity Catalogで権限を付与する方法については、「権限の表示、付与、および取り消し」を参照してください。

セキュリティ保護可能

権限

METASTORE

CREATE CATALOGCREATE CONNECTIONCREATE EXTERNAL LOCATIONCREATE PROVIDERCREATE RECIPIENTCREATE SHARECREATE STORAGE CREDENTIALSET SHARE PERMISSIONUSE MARKETPLACE ASSETSUSE PROVIDERUSE RECIPIENTUSE SHARE

CATALOG

ALL PRIVILEGESAPPLY TAGBROWSECREATE SCHEMAEXTERNAL USE SCHEMAUSE CATALOG

すべてのユーザーは、デフォルトでmainカタログにUSE CATALOGを持っています。

以下の権限タイプは、カタログ内の保護可能なオブジェクトに適用されます。これらの特権をカタログレベルで付与して、カタログ内の現在および将来のオブジェクトに適用することができます。

CREATE FUNCTIONCREATE TABLECREATE MODELCREATE VOLUMEREAD VOLUMEWRITE VOLUMEEXECUTEMODIFYSELECTUSE SCHEMA

SCHEMA

ALL PRIVILEGESAPPLY TAGCREATE FUNCTIONCREATE TABLECREATE MODELCREATE VOLUMEEXTERNAL USE SCHEMAUSE SCHEMA

次の権限タイプは、スキーマ内の保護可能なオブジェクトに適用されます。これらの権限をスキーマレベルで付与して、スキーマ内の現在および将来のオブジェクトに適用できます。

EXECUTEMODIFYREAD VOLUMESELECTWRITE VOLUME

TABLE

ALL PRIVILEGESAPPLY TAGMODIFYSELECT

VIEW

ALL PRIVILEGESAPPLY TAGSELECT

VOLUME

ALL PRIVILEGESAPPLY TAGREAD VOLUMEWRITE VOLUME

EXTERNAL LOCATION

ALL PRIVILEGESBROWSECREATE EXTERNAL TABLECREATE EXTERNAL VOLUMECREATE FOREIGN SECURABLEREAD FILESWRITE FILESCREATE MANAGED STORAGE

STORAGE CREDENTIAL

ALL PRIVILEGESCREATE EXTERNAL LOCATIONCREATE EXTERNAL TABLEREAD FILESWRITE FILES

CONNECTION

ALL PRIVILEGESCREATE FOREIGN CATALOGUSE CONNECTION

FUNCTION

ALL PRIVILEGESAPPLY TAG (モデルのみ)、 EXECUTE

モデル

登録モデルは機能の一種です。

SHARE

SELECTRECIPIENTに付与可能)

RECIPIENT

なし

PROVIDER

なし

一般的なUnity Catalogの権限タイプ

このセクションでは、一般的にUnity Catalogに適用される権限タイプについて詳しく説明します。Unity Catalogで権限を付与する方法については、「権限の表示、付与、および取り消し」を参照してください。

ALL PRIVILEGE

適用可能なオブジェクトタイプ: CATALOGEXTERNAL LOCATIONSTORAGE CREDENTIALSCHEMAFUNCTION (モデルを含む)、 TABLEVIEW, VOLUME

セキュリティ保護可能なオブジェクトとその子オブジェクトに適用されるすべての権限を、明示的に指定せずに付与または取り消すために使用されます。

オブジェクトに対するALL PRIVILEGESが付与された場合、付与された時点で適用可能な各権限が個別にユーザーに付与されるのではなく、権限チェックが行われた時点で使用可能なすべての権限として展開されます。

ALL PRIVILEGESが取り消されると、ALL PRIVILEGES権限が取り消され、ユーザーに付与されたオブジェクトに対する明示的な権限もすべて取り消されます。

偶発的なデータ流出を防ぐため、 ALL PRIVILEGES には EXTERNAL USE SCHEMA 権限は含まれていません。

注:

この権限は、階層の上位レベルに適用するとより強力になります。たとえば、「GRANT ALL PRIVILEGES ON CATALOG main TO analysts」は、カタログ内のすべてのオブジェクト(SCHEMA、TABLE、VIEW、FUNCTION)に対するすべての権限をアナリストチームに付与します。

APPLY TAG

適用可能なオブジェクトタイプ: CATALOGSCHEMATABLEVOLUMEVIEW、として登録されているモデル FUNCTION

ユーザーは、オブジェクトにタグを追加および編集できます。 テーブルまたはビューに APPLY TAG を付与すると、列のタグ付けも有効になります。 登録済みモデルに APPLY TAG を付与すると、モデル バージョンのタグ付けも有効になります。

ユーザーは親カタログ上でUSE CATALOG権限、親スキーマ上でUSE SCHEMA権限も持っている必要があります。

BROWSE

適用可能なオブジェクトタイプ:CATALOGEXTERNAL LOCATION

プレビュー

この機能はパブリックプレビュー段階です。

ユーザーが、カタログエクスプローラー、スキーマブラウザー、検索結果、リネージグラフ、information_schema、およびREST APIを使用してオブジェクトのメタデータを確認できるようにします。

ユーザーには、親カタログに対するUSE CATALOG権限や親スキーマに対するUSE SCHEMA権限は必要ありません。

カタログエクスプローラーを使用して作成された新しいカタログでは、デフォルトですべてのユーザーにBROWSE権限が付与されます。権限は必要に応じて取り消すことができます。SQL文、REST API、またはDatabricks CLIを使用して作成されたカタログでは、デフォルトでBROWSE権限が付与されません。明示的に付与する必要があります。

CREATE CATALOG

適用可能なオブジェクトタイプ: Unity Catalog メタストア

ユーザーがUnity Catalogメタストアにカタログを作成できるようにします。フォーリンカタログを作成するには、フォーリンカタログを含む接続またはメタストアに対するCREATE FOREIGN CATALOG権限も必要です。

CREATE CONNECTION

適用可能なオブジェクトタイプ: Unity Catalog メタストア

レイクハウスフェデレーションシナリオで、外部データベースへの接続を作成できます。

CREATE EXTERNAL LOCATION

適用可能なオブジェクトタイプ: Unity Catalog メタストア、 STORAGE CREDENTIAL

外部ロケーションを作成するには、ユーザーがメタストアと外部ロケーションで参照されるストレージ資格情報の両方に対してこの権限を持っている必要があります。

CREATE EXTERNAL TABLE

適用可能なオブジェクトタイプ:EXTERNAL LOCATIONSTORAGE CREDENTIAL

ユーザーは、外部ロケーションまたはストレージ資格情報を使用して、クラウドテナントに外部テーブルを直接作成できます。Databricksでは、ストレージ資格情報ではなく外部ロケーションにこの特権を付与することをお勧めします(パスにスコープが設定されているため、ユーザーがクラウドテナントで外部テーブルを作成できる場所をより細かく制御できます)。

CREATE EXTERNAL VOLUME

適用可能なオブジェクトタイプ: EXTERNAL LOCATION

ユーザーは外部ロケーションを使用して外部ボリュームを作成できます。

CREATE FOREIGN CATALOG

適用可能なオブジェクトタイプ: CONNECTION

レイクハウスフェデレーションシナリオで、外部データベースへの接続を使用してフォーリンカタログを作成できるようにします。

外部セキュリティ保護可能オブジェクトの作成

適用可能なオブジェクトタイプ: EXTERNAL LOCATION

フォーリンカタログを作成しているユーザーは、外部ロケーションでカバーされる 許可パス を指定できます。

また、ユーザーは Unity Catalog メタストアにCREATE CATALOGを持ち、接続にCREATE FOREIGN CATALOGを持っている必要があります。

CREATE FUNCTION

適用可能なオブジェクトタイプ: SCHEMA

ユーザーがスキーマに関数を作成できるようにします。権限は継承されるため、カタログに対してCREATE FUNCTIONを付与することもできます。これにより、ユーザーはカタログ内の既存または将来のスキーマで関数を作成できます。

ユーザーは親カタログ上でUSE CATALOG権限、親スキーマ上でUSE SCHEMA権限も持っている必要があります。

CREATE MODEL

適用可能なオブジェクトタイプ: SCHEMA

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

ユーザーは親カタログ上でUSE CATALOG権限、親スキーマ上でUSE SCHEMA権限も持っている必要があります。

CREATE MANAGED STORAGE

適用可能なオブジェクトタイプ: EXTERNAL LOCATION

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

CREATE SCHEMA

適用可能なオブジェクトタイプ: CATALOG

ユーザーがスキーマを作成できるようにします。ユーザーは、カタログに対するUSE CATALOG権限も持っている必要があります。

ストレージ資格情報の作成

適用可能なオブジェクトタイプ: Unity Catalog メタストア

ユーザーがUnity Catalogメタストアにストレージ資格情報を作成できるようにします。

CREATE TABLE

適用可能なオブジェクトタイプ: SCHEMA

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

ユーザーは、親カタログに対するUSE CATALOG権限と、親スキーマに対するUSE SCHEMA権限も持っている必要があります。

CREATE VOLUME

適用可能なオブジェクトタイプ: SCHEMA

ユーザーがスキーマにボリュームを作成できるようにします。権限は継承されるため、カタログに対してCREATE VOLUMEを付与することもできます。これにより、ユーザーはカタログ内の既存または将来のスキーマでボリュームを作成できます。

また、ユーザーは、ボリュームの親カタログに対するUSE CATALOG権限と、その親スキーマに対するUSE SCHEMA権限も持っている必要があります。

EXECUTE

適用可能なオブジェクトタイプ: FUNCTION、モデル

ユーザーが親カタログに対するUSE CATALOG、親スキーマに対するUSE SCHEMAを持っている場合、ユーザーがユーザー定義関数を呼び出したり、推論用のモデルをロードしたりできるようにします。関数の場合、EXECUTEは関数定義とメタデータを表示する権限を付与します。登録済みモデルの場合、EXECUTEは、登録済みモデルの全バージョンのメタデータを閲覧し、モデルファイルをダウンロードする権限を付与します。

権限は継承されるため、カタログまたはスキーマに対するEXECUTE権限をユーザーに付与すると、カタログまたはスキーマ内の現在および将来のすべての機能に対するEXECUTE権限が自動的にユーザーに付与されます。

外部USE SCHEMA

適用可能なオブジェクトタイプ: SCHEMA

Unity CatalogUnity CatalogOpenAPIs または を使用して、外部処理エンジンから テーブルにアクセスするための一時的な資格情報をユーザーに付与できます。IcebergRESTAPIs

この権限を付与できるのは、カタログの所有者だけです。

偶発的なデータ流出を防ぐため、 ALL PRIVILEGES には EXTERNAL USE SCHEMA 権限が含まれておらず、スキーマの所有者にはデフォルトでこの権限がありません。

「Unity Catalog のデータへの外部アクセスの制御」を参照してください。

許可リストの管理

適用可能なオブジェクトタイプ: Unity Catalog メタストア

ユーザーは、共有アクセスモードでUnity Catalog対応クラスターを管理する許可リスト内のinitScript、JAR、および Maven座標のパスを追加または変更できます。詳しくは、「共有コンピュートの許可リストライブラリとinitスクリプト」を参照してください。

MODIFY

適用可能なオブジェクトタイプ: TABLE

ユーザーがテーブルに対してSELECT、親カタログに対してUSE CATALOG、親スキーマに対してUSE SCHEMAを持っている場合、そのユーザーはテーブルのデータを追加、更新、削除できます。

権限は継承されるため、カタログまたはスキーマに対するMODIFY権限をユーザーに付与すると、カタログまたはスキーマ内の現在および将来のすべてのテーブルに対するMODIFY権限が自動的にユーザーに付与されます。

READ FILES

適用可能なオブジェクトタイプ: EXTERNAL LOCATION

Databricks では、ボリュームと READ VOLUME 特権を使用して、クラウド オブジェクト ストレージ内のデータへの読み取りアクセスを管理することをお勧めします。

READ FILES ユーザーは、外部ロケーションとして構成された Cloud Object Storage からファイルを直接読み取ることができます。 詳細については 、「外部ロケーション、外部テーブル、および外部ボリュームの管理」を参照してください。

READ VOLUME

適用可能なオブジェクトタイプ: VOLUME

ユーザーが親カタログに対してUSE CATALOG、親スキーマに対してUSE SCHEMAを持っている場合、そのユーザーはボリューム内に格納されているファイルとディレクトリを読み取ることができます。

権限は継承されます。ユーザーにカタログまたはスキーマに対するREAD VOLUME権限を付与できる場合、そのユーザーにはカタログまたはスキーマ内の現在および将来のすべてのボリューム対するREAD VOLUME権限が自動的に付与されます。

SELECT

適用可能なオブジェクトタイプ:TABLEVIEWSHARE

テーブルまたはビューに適用すると、ユーザーが親カタログに対してUSE CATALOG、親スキーマに対してUSE SCHEMA持っている場合、そのユーザーはテーブルまたはビューから選択できるようになります。共有に適用すると、受信者が共有から選択できるようになります。

権限は継承されるため、カタログまたはスキーマに対するSELECT権限をユーザーに付与すると、カタログまたはスキーマ内の現在および将来のすべてのテーブルおよびビューに対するSELECT権限が自動的にユーザーに付与されます。

USE CATALOG

適用可能なオブジェクトタイプ: CATALOG

この権限はカタログ自体へのアクセスを許可するものではありませんが、ユーザーがカタログ内の任意のオブジェクトを操作するために必要です。たとえば、テーブルからデータを選択するには、ユーザーはそのテーブルに対するSELECT権限と、その親カタログに対するUSE CATALOG権限、さらにその親スキーマに対するUSE SCHEMA権限を持っている必要があります。

これは、カタログの所有者が、個々のスキーマとテーブルの所有者が生成するデータを共有できる範囲を制限できるようにする場合に便利です。たとえば、テーブルの所有者が別のユーザーにSELECT権限を付与する場合、そのユーザーには、親カタログに対するUSE CATALOG権限と親スキーマに対するUSE SCHEMA権限も付与されていない限り、テーブルへの読み取りアクセスは許可されません。

ユーザーがそのカタログに対するBROWSE権限を持っている場合、オブジェクトのメタデータを読み取るために親カタログに対するUSE CATALOG権限は必要ありません。

USE CONNECTION

適用可能なオブジェクトタイプ: CONNECTION

ユーザーは、レイクハウスフェデレーションシナリオで外部データベースへの接続に関する詳細を一覧表示および表示できます。接続のフォーリンカタログを作成するには、接続に対するCREATE FOREIGN CATALOGまたは接続の所有権が必要です。

USE SCHEMA

適用可能なオブジェクトタイプ: SCHEMA

この権限はスキーマ自体へのアクセスを許可するものではありませんが、ユーザーがスキーマ内の任意のオブジェクトを操作するために必要です。たとえば、テーブルからデータを選択するには、ユーザーはそのテーブルに対するSELECT権限と、その親スキーマに対するUSE SCHEMA権限と、その親カタログに対するUSE CATALOGを持っている必要があります。

権限は継承されるため、カタログに対するUSE SCHEMA権限をユーザーに付与すると、カタログ内の現在および将来のすべてのスキーマに対するUSE SCHEMA権限が自動的にユーザーに付与されます。

ユーザーがそのスキーマまたはその親カタログに対するBROWSE権限を持っている場合、オブジェクトのメタデータを読み取るために親スキーマに対するUSE SCHEMA権限は必要ありません。

WRITE FILES

適用可能なオブジェクトタイプ: EXTERNAL LOCATION

Databricks では、ボリュームと WRITE VOLUME 特権を使用して、クラウド オブジェクト ストレージ内のデータへの書き込みアクセスを管理することをお勧めします。

WRITE FILES ユーザーは、外部ロケーションとして構成された Cloud Object Storage にファイルを直接書き込むことができます。 詳細については 、「外部ロケーション、外部テーブル、および外部ボリュームの管理」を参照してください。

WRITE VOLUME

適用可能なオブジェクトタイプ: VOLUME

ユーザーがボリュームの親カタログに対してUSE CATALOG、親スキーマに対してUSE SCHEMAも持っている場合、そのユーザーはボリューム内に格納されているファイルとディレクトリを追加、削除、または変更できます。

権限は継承されます。ユーザーにカタログまたはスキーマに対するWRITE VOLUME権限を付与できる場合、そのユーザーにはカタログまたはスキーマ内の現在および将来のすべてのボリューム対するWRITE VOLUME権限が自動的に付与されます。

Delta SharingまたはDatabricks Marketplaceにのみ適用される特権タイプ

このセクションでは、Delta Sharingにのみ適用される権限タイプについて詳しく説明します。

CREATE PROVIDER

適用可能なオブジェクトタイプ: Unity Catalog メタストア

メタストアでDelta Sharingプロバイダーオブジェクトを作成することをユーザーに許可します。プロバイダーは、Delta Sharingを使用してデータを共有した組織またはユーザーグループを識別します。プロバイダーの作成は、受信者のDatabricksアカウント内のユーザーによって実行されます。「Delta Sharingとは?」を参照してください。

CREATE RECIPIENT

適用可能なオブジェクトタイプ: Unity Catalog メタストア

メタストアにDelta Sharing受信者オブジェクトを作成することをユーザーに許可します。受信者は、Delta Sharingを使用したデータ共有を受信する組織またはユーザーグループを識別します。受信者の作成は、プロバイダーのDatabricksアカウント内のユーザーによって実行されます。「Delta Sharingとは?」を参照してください。

CREATE SHARE

適用可能なオブジェクトタイプ: Unity Catalog メタストア

ユーザーはメタストアに共有を作成できます。共有は、Delta Sharingを使用して共有するテーブルの論理グループです

SET SHARE PERMISSION

適用可能なオブジェクトタイプ: Unity Catalog メタストア

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

USE MARKETPLACE ASSETS

適用可能なオブジェクトタイプ: Unity Catalog メタストア

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

USE PROVIDER

適用可能なオブジェクトタイプ: Unity Catalog メタストア

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

USE RECIPIENT

適用可能なオブジェクトタイプ: Unity Catalog メタストア

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

Databricks Marketplaceでは、これにより、プロバイダーユーザーはプロバイダーコンソールでリストとコンシューマーリクエストを表示できるようになります。

USE SHARE

適用可能なオブジェクトタイプ: Unity Catalog メタストア

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

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