Unity Catalog権限とセキュリティ保護可能なオブジェクト
この記事では、Unity Catalogのセキュリティ保護可能なオブジェクトと、それらに適用される権限について説明します。Unity Catalogで権限を付与する方法については、「権限の表示、付与、および取り消し」を参照してください。
注:
この記事では、権限モデルバージョン1.0のUnity Catalogの権限および継承モデルについて説明します。パブリックプレビュー期間中(2022年8月25日以前)にUnity Catalogメタストアを作成した場合は、現在の継承モデルをサポートしていない以前の権限モデルを使用している可能性があります。権限継承を利用するには、権限モデルバージョン1.0にアップグレードしてください。「権限継承へのアップグレード」を参照してください。
Unity Catalog内のセキュリティ保護可能なオブジェクト
セキュリティ保護可能なオブジェクトは、Unity Catalogメタストアで定義され、プリンシパル(ユーザー、サービスプリンシパル、またはグループ)に権限を付与できるオブジェクトです。Unity Catalog内のセキュリティ保護可能なオブジェクトは階層構造です。
セキュリティ保護対象オブジェクトには次のものがあります。
METASTORE:メタデータのトップレベルコンテナです。各Unity Catalogメタストアでは、データを整理する3つのレベルの名前空間(
catalog
、schema
、table
)が公開されます。メタストアの権限を管理する場合は、SQLコマンドにメタストア名を含めません。Unity Catalogは、ワークスペースにアタッチされたメタストアに対して権限を付与または取り消します。たとえば、次のコマンドは、engineeringという名前のグループに、ワークスペースにアタッチされたメタストアにカタログを作成する能力を付与します。
GRANT CREATE CATALOG ON METASTORE TO engineering
CATALOG:データ資産を整理するために使用されるオブジェクト階層の最初のレイヤー。フォーリンカタログは、レイクハウスフェデレーションシナリオで外部データシステム内のデータベースをミラーリングする特別なカタログタイプです。
SCHEMA:データベースとも呼ばれます。オブジェクト階層の第2層であり、テーブルとビューが格納されます。
TABLE:オブジェクト階層の最下位レベルのテーブルは、外部(選択したクラウドストレージ内の外部ロケーションに格納)またはマネージドテーブル(Databricks用に明示的に作成したクラウドストレージ内のストレージコンテナーに格納される)にすることができます。
VIEW:スキーマに含まれる1つ以上のテーブルに対するクエリーから作成された読み取り専用オブジェクトです。
MATERIALIZED VIEW:スキーマ内に含まれる1つ以上のテーブルに対するクエリーから作成されたオブジェクト。その結果には、最後に更新されたときのデータの状態が反映されます。
VOLUME:オブジェクト階層の最下位レベルであるボリュームは、外部(選択したクラウドストレージの外部ロケーションに格納)または管理(Databricks用に明示的に作成したクラウドストレージ内のストレージコンテナーに格納される)にすることができます。
FUNCTION: スキーマ内に含まれる ユーザー定義関数 または MLflow 登録モデル 。
モデル: MLflow に登録されたモデルは 、特定の種類の関数です。 モデルはカタログ エクスプローラで他の関数とは別にリストされますが、SQL を使用してモデルに対する権限を付与する場合は、
GRANT ON FUNCTION
を使用します。EXTERNAL LOCATION:ストレージ資格情報への参照と、Unity Catalogメタストア内に含まれるクラウドストレージパスを含むオブジェクト。
サービス CREDENTIAL: 外部サービスへのアクセスを提供する長期的なクラウド資格情報をカプセル化するオブジェクト。 Unity Catalogメタストアに含まれています。
STORAGE CREDENTIAL:Unity Catalogメタストアに含まれるクラウドストレージにアクセスするための長期的なクラウド資格情報をカプセル化するオブジェクト。
CONNECTION:レイクハウスフェデレーションシナリオで外部データベースシステムにアクセスするためのパスと資格情報を指定するオブジェクト。
SHARE:Delta Sharingを使用して共有するテーブルの論理グループ。共有はUnity Catalogメタストア内に含まれます。
RECIPIENT:Delta Sharingを使用してデータを共有できる組織またはユーザーグループを識別するオブジェクト。これらのオブジェクトはUnity Catalogメタストア内に含まれています。
PROVIDER:Delta Sharingを使用してデータを共有できるようにした組織を表すオブジェクト。これらのオブジェクトはUnity Catalogメタストア内に含まれています。
CLEAN ROOM:Databricksによって管理される、セキュアでプライバシーが保護された環境を表すオブジェクトで、複数の関係者が互いのデータに直接アクセスすることなくコラボレーションすることができます。
Unity Catalog内のセキュリティ保護可能なオブジェクト別の権限タイプ
次の表に、Unity Catalogのセキュリティ保護可能なオブジェクトそれぞれに適用される権限タイプを示します。Unity Catalogで権限を付与する方法については、「権限の表示、付与、および取り消し」を参照してください。
セキュリティ保護可能 |
権限 |
---|---|
METASTORE |
|
CATALOG |
すべてのユーザーは、デフォルトで 以下の権限タイプは、カタログ内の保護可能なオブジェクトに適用されます。これらの特権をカタログレベルで付与して、カタログ内の現在および将来のオブジェクトに適用することができます。
|
SCHEMA |
次の権限タイプは、スキーマ内の保護可能なオブジェクトに適用されます。これらの権限をスキーマレベルで付与して、スキーマ内の現在および将来のオブジェクトに適用できます。
|
TABLE |
|
マテリアライズドビュー |
|
VIEW |
|
VOLUME |
|
EXTERNAL LOCATION |
|
サービス資格情報 |
|
STORAGE CREDENTIAL |
|
CONNECTION |
|
FUNCTION |
|
モデル |
登録モデルは機能の一種です。 |
SHARE |
|
RECIPIENT |
なし |
PROVIDER |
なし |
クリーンルーム |
|
一般的なUnity Catalogの権限タイプ
このセクションでは、一般的にUnity Catalogに適用される権限タイプについて詳しく説明します。Unity Catalogで権限を付与する方法については、「権限の表示、付与、および取り消し」を参照してください。
ALL PRIVILEGE
適用可能なオブジェクトタイプ: CATALOG
、 EXTERNAL LOCATION
、 STORAGE CREDENTIAL
、 SCHEMA
、 FUNCTION
(モデルを含む) TABLE
、 MATERIALIZED VIEW
、 VIEW,
VOLUME
セキュリティ保護可能なオブジェクトとその子オブジェクトに適用されるすべての権限を、明示的に指定せずに付与または取り消すために使用されます。
オブジェクトに対するALL PRIVILEGES
が付与された場合、付与された時点で適用可能な各権限が個別にユーザーに付与されるのではなく、権限チェックが行われた時点で使用可能なすべての権限として展開されます。つまり、Databricksが新しい権限と新しいセキュリティ保護可能なオブジェクトをリリースすると、すでに付与されていたALL PRIVILEGES
には、セキュリティ保護可能なオブジェクト、その既存の子オブジェクト、および新しい子オブジェクトに適用可能な新しい権限が自動的に含まれることになります。
ALL PRIVILEGES
が取り消されると、ALL PRIVILEGES
権限が取り消され、ユーザーに付与されたオブジェクトに対する明示的な権限もすべて取り消されます。
偶発的なデータ流出を防ぐため、 ALL PRIVILEGES
には EXTERNAL USE SCHEMA
権限は含まれていません。
注:
この権限は、階層の上位レベルに適用するとより強力になります。たとえば、「GRANT ALL PRIVILEGES ON CATALOG main TO analysts
」では、カタログ内の既存および将来の保護可能なすべてのオブジェクトに対する既存および将来のすべての権限がアナリストチームに付与されます。
APPLY TAG
適用可能なオブジェクトタイプ: CATALOG
、 SCHEMA
、 TABLE
、 VOLUME
、 MATERIALIZED VIEW
、 VIEW
、 FUNCTION
ユーザーは、オブジェクトにタグを追加および編集できます。 テーブルまたはビューに APPLY TAG
を付与すると、列のタグ付けも有効になります。 登録済みモデルに APPLY TAG
を付与すると、モデル バージョンのタグ付けも有効になります。
ユーザーは親カタログ上でUSE CATALOG
権限、親スキーマ上でUSE SCHEMA
権限も持っている必要があります。
BROWSE
適用可能なオブジェクトタイプ:CATALOG
、EXTERNAL LOCATION
、 CLEAN ROOM
プレビュー
この機能はパブリックプレビュー段階です。
ユーザーが、カタログエクスプローラー、スキーマブラウザー、検索結果、リネージグラフ、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 CLEAN ROOM
適用可能なオブジェクトタイプ: Unity Catalog メタストア
ユーザーは、基礎となるデータを共有することなく、他の組織とプロジェクトを安全にコラボレーションするためのクリーンルームを作成することができます。
CREATE CONNECTION
適用可能なオブジェクトタイプ: Unity Catalog メタストア、 SERVICE CREDENTIAL
ユーザーは、レイクハウスフェデレーションのシナリオで外部データベースへの接続を作成できます。 サービス資格情報を使用して接続を作成するには、ユーザーはメタストアとサービス資格情報の両方に対してこの特権を持っている必要があります。
CREATE EXTERNAL LOCATION
適用可能なオブジェクトタイプ: Unity Catalog メタストア、 STORAGE CREDENTIAL
外部ロケーションを作成するには、ユーザーがメタストアと外部ロケーションで参照されるストレージ資格情報の両方に対してこの権限を持っている必要があります。
CREATE EXTERNAL TABLE
適用可能なオブジェクトタイプ:EXTERNAL LOCATION
、 STORAGE CREDENTIAL
ユーザーは、外部ロケーションまたはストレージ資格情報を使用して、クラウドテナントに外部テーブルを直接作成できます。Databricksでは、ストレージ資格情報ではなく外部ロケーションにこの特権を付与することをお勧めします(パスにスコープが設定されているため、ユーザーがクラウドテナントで外部テーブルを作成できる場所をより細かく制御できます)。
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
権限も持っている必要があります。
CREATE TABLE
適用可能なオブジェクトタイプ: SCHEMA
ユーザーがスキーマにテーブルやビューを作成できるようにします。権限は継承されるため、カタログに対してCREATE TABLE
を付与することもできます。これにより、ユーザーはカタログ内の既存または将来のスキーマでテーブルやビューを作成できます。
ユーザーは、親カタログに対するUSE CATALOG
権限と、親スキーマに対するUSE SCHEMA
権限も持っている必要があります。
CREATE MATERIALIZED VIEW
適用可能なオブジェクトタイプ: SCHEMA
ユーザーがスキーマにマテリアライズドビューを作成できるようにします。権限は継承されるため、カタログに対するCREATE MATERIALIZED VIEW
を付与することもできます。これにより、ユーザーはカタログ内の既存または将来のスキーマでテーブルやビューを作成できます。
ユーザーは、親カタログに対するUSE CATALOG
権限と、親スキーマに対するUSE SCHEMA
権限も持っている必要があります。
CREATE VOLUME
適用可能なオブジェクトタイプ: SCHEMA
ユーザーがスキーマにボリュームを作成できるようにします。権限は継承されるため、カタログに対してCREATE VOLUME
を付与することもできます。これにより、ユーザーはカタログ内の既存または将来のスキーマでボリュームを作成できます。
また、ユーザーは、ボリュームの親カタログに対するUSE CATALOG
権限と、その親スキーマに対するUSE SCHEMA
権限も持っている必要があります。
EXECUTE
適用可能なオブジェクトタイプ: FUNCTION
、モデル
ユーザーが親カタログに対するUSE CATALOG
、親スキーマに対するUSE SCHEMA
を持っている場合、ユーザーがユーザー定義関数を呼び出したり、推論用のモデルをロードしたりできるようにします。関数の場合、EXECUTE
は関数定義とメタデータを表示する権限を付与します。登録済みモデルの場合、EXECUTE
は、登録済みモデルの全バージョンのメタデータを閲覧し、モデルファイルをダウンロードする権限を付与します。
権限は継承されるため、カタログまたはスキーマに対するEXECUTE
権限をユーザーに付与すると、カタログまたはスキーマ内の現在および将来のすべての機能に対するEXECUTE
権限が自動的にユーザーに付与されます。
EXECUTE CLEAN ROOM TASK
適用可能なオブジェクトタイプ: CLEAN ROOM
ユーザーがクリーンルーム内でタスク(ノートブック)を実行できるようにします。また、ユーザーがクリーンルームの詳細を表示できるようにもします。
外部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
権限が自動的にユーザーに付与されます。
MODIFY CLEAN ROOM
適用可能なオブジェクトタイプ: CLEAN ROOM
ユーザーが、データ資産の追加と削除、ノートブックの追加と削除、コメントの更新など、クリーンルームを更新できるようにします。また、ユーザーがクリーンルームの詳細を表示できるようにもします。
READ FILES
適用可能なオブジェクトタイプ: EXTERNAL LOCATION
Databricks では、ボリュームと READ VOLUME
特権を使用して、クラウド オブジェクト ストレージ内のデータへの読み取りアクセスを管理することをお勧めします。
READ FILES
ユーザーは、外部ロケーションとして構成された Cloud Object Storage からファイルを直接読み取ることができます。 詳細については 、「外部ロケーション、外部テーブル、および外部ボリュームの管理」を参照してください。
READ VOLUME
適用可能なオブジェクトタイプ: VOLUME
ユーザーが親カタログに対してUSE CATALOG
、親スキーマに対してUSE SCHEMA
を持っている場合、そのユーザーはボリューム内に格納されているファイルとディレクトリを読み取ることができます。
権限は継承されます。ユーザーにカタログまたはスキーマに対するREAD VOLUME
権限を付与できる場合、そのユーザーにはカタログまたはスキーマ内の現在および将来のすべてのボリューム対するREAD VOLUME
権限が自動的に付与されます。
REFRESH
適用可能なオブジェクトタイプ: MATERIALIZED VIEW
ユーザーが親カタログに対するUSE CATALOG
、親スキーマに対するUSE SCHEMA
を持っている場合、そのユーザーがマテリアライズドビューを更新できるようにします。
権限は継承されます。カタログまたはスキーマに対するREFRESH
権限をユーザーに付与する場合、そのユーザーにはカタログまたはスキーマ内の現在および将来のすべてのマテリアライズドビュー対するREFRESH
権限が自動的に付与されます。
SELECT
適用可能なオブジェクトタイプ:TABLE
、 VIEW
、 MATERIALIZED VIEW
、 SHARE
テーブルまたはビューに適用すると、ユーザーが親カタログに対して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 にファイルを直接書き込むことができます。 詳細については 、「外部ロケーション、外部テーブル、および外部ボリュームの管理」を参照してください。
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とは?」を参照してください。
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では、これにより、プロバイダーユーザーはプロバイダーコンソールでリストとコンシューマーリクエストを表示できるようになります。