Unity Catalog 特権とセキュリティ保護可能なオブジェクト
この記事では、 Unity Catalogセキュリティ保護可能なオブジェクトと、それらに適用される権限について説明します。 Unity Catalog で権限を付与する方法については、 「権限の表示、付与、取り消し」を参照してください。
Unity Catalog 内のセキュリティ保護可能なオブジェクト
セキュリティ保護可能なオブジェクトは、 Unity Catalogメタストアで定義され、プリンシパル (ユーザー、サービス プリンシパル、またはグループ) に権限を付与できるオブジェクトです。 Unity Catalog内のセキュリティ保護可能なオブジェクトは階層化されています。
![Unity Catalog オブジェクト階層](../../../_images/object-hierarchy.png)
セキュリティ保護対象オブジェクトには次のものがあります。
メタストア: メタデータの最上位コンテナー。 各 Unity Catalog メタストアは、3 レベルの名前空間 (
catalog
.schema
.table
)それはあなたのデータを整理します。メタストアの特権を管理する場合、SQL コマンドにメタストア名を含めません。 Unity Catalog 、ワークスペースにアタッチされているメタストアに対する権限を付与または取り消します。 たとえば、次のコマンドは、 エンジニアリング という名前のグループに、ワークスペースにアタッチされたメタストアにカタログを作成する権限を付与します。
GRANT CREATE CATALOG ON METASTORE TO engineering
CATALOG: データ資産を整理するために使用されるオブジェクト階層の最初のレイヤー。 フォーリンカタログは、レイクハウスフェデレーションシナリオで外部データシステム内のデータベースをミラーリングする特別な カタログ タイプです。
スキーマ: データベースとも呼ばれます。オブジェクト階層の第2層であり、テーブルとビューが格納されます。
テーブル: オブジェクト階層の最下位レベルのテーブルは、 外部 (選択したクラウド ストレージ内の外部ロケーションに格納) または マネージド テーブル (Databricks 用に明示的に作成したクラウド ストレージ内のストレージ コンテナーに格納される) にすることができます。
VIEW: スキーマ内に含まれる 1 つ以上のテーブルに対するクエリから作成された読み取り専用オブジェクト。
VOLUME: オブジェクト階層の最下位レベルであるボリュームは、 外部 (選択したクラウド ストレージの外部ロケーションに格納) または 管理 (Databricks 用に明示的に作成したクラウド ストレージ内のストレージ コンテナーに格納される) にすることができます。
登録済みモデル: スキーマ内に含まれる MLflow 登録済みモデル 。
FUNCTION: スキーマ内に含まれるユーザー定義関数。 Unity Catalogのユーザー定義関数 (UDF) を参照してください。
外部ロケーション: ストレージ資格情報への参照と、 Unity Catalog メタストア内に含まれるクラウド ストレージ パスを含むオブジェクト。
ストレージ資格情報: Unity Catalog メタストア内に含まれるクラウドストレージへのアクセスを提供する長期的なクラウド資格情報をカプセル化するオブジェクト。
CONNECTION: レイクハウスフェデレーションシナリオで外部データベースシステムにアクセスするためのパスと資格情報を指定するオブジェクト。
SHARE: Delta Sharingを使用して共有するテーブルの論理グループ。 共有は、 Unity Catalog メタストア内に含まれています。
受信者: Delta Sharingを使用してデータを共有できる組織またはユーザーのグループを識別するオブジェクト。 これらのオブジェクトは、 Unity Catalog メタストア内に含まれています。
PROVIDER: Delta Sharingを使用してデータを共有できるようにした組織を表すオブジェクト。 これらのオブジェクトは、 Unity Catalog メタストア内に含まれています。
Unity Catalog 内のセキュリティ保護可能なオブジェクト別の特権タイプ
次の表は、Unity Catalog 内のセキュリティ保護可能な各オブジェクトに適用される権限の種類を示しています。 Unity Catalog で権限を付与する方法については、 「権限の表示、付与、取り消し」を参照してください。
セキュリティ保護可能 |
特権 |
---|---|
メタストア |
|
カタログ |
すべてのユーザーは、デフォルトで 次の権限タイプは、カタログ内のセキュリティ保護可能なオブジェクトに適用されます。 これらの特権をカタログ・レベルで付与して、カタログ内の現在および将来の関連オブジェクトに適用できます。
|
スキーマ |
次の特権の種類は、スキーマ内のセキュリティ保護可能なオブジェクトに適用されます。 これらの権限をスキーマレベルで付与して、スキーマ内の関連する現在および将来のオブジェクトに適用できます。
|
テーブル |
|
眺める |
|
容積 |
|
外部ロケーション |
|
ストレージ資格情報 |
|
接続 |
|
機能 |
|
登録モデル |
|
共有 |
|
受信者 |
None |
プロバイダー |
None |
一般的な Unity Catalog 特権タイプ
このセクションでは、Unity Catalog に一般的に適用される権限の種類について詳しく説明します。 Unity Catalog で権限を付与する方法については、 「権限の表示、付与、取り消し」を参照してください。
すべての特権
適用可能なオブジェクトタイプ: CATALOG
, EXTERNAL LOCATION
, STORAGE CREDENTIAL
, SCHEMA
, FUNCTION
, REGISTERED MODEL
, TABLE
, VIEW,
VOLUME
セキュリティ保護可能なオブジェクトとその子オブジェクトに適用可能なすべての特権を明示的に指定せずに付与または取り消すために使用されます。
オブジェクトに対して ALL PRIVILEGES
が付与された場合、付与時に該当する各特権がユーザーに個別に付与されることはありません。 代わりに、アクセス許可のチェックが行われた時点で使用可能なすべての特権に展開されます。
ALL PRIVILEGES
取り消されると、 ALL PRIVILEGES
特権が取り消され、オブジェクトに対してユーザーに付与された明示的な特権も取り消されます。
注
この特権は、階層の上位レベルで適用すると強力です。 たとえば、GRANT ALL PRIVILEGES CATALOG main TO analysts
は、カタログ内のすべてのオブジェクト (スキーマ、テーブル、ビュー、関数) に対するすべての権限をアナリスト チームに付与します。
タグの適用
適用可能なオブジェクトタイプ: CATALOG
、 SCHEMA
、 REGISTERED MODEL
、 TABLE
、 VOLUME
、 VIEW
オブジェクトにタグを追加および編集することを許可します。 テーブルまたはビューに APPLY TAG
を付与すると、列のタグ付けも有効になります。
また、ユーザーは、親カタログに対する USE CATALOG
特権と、親スキーマに対する USE SCHEMA
特権を持っている必要があります。
ブラウズ
適用可能なオブジェクトタイプ: CATALOG
, EXTERNAL 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 特権も必要です。
外部ロケーションを作成する
適用可能なオブジェクトの種類: Unity Catalog メタストア、 STORAGE CREDENTIAL
外部ロケーションを作成するには、ユーザーは、メタストアと、外部ロケーションで参照されているストレージ資格情報の両方に対してこの特権を持っている必要があります。
外部テーブルの作成
適用可能なオブジェクトタイプ: EXTERNAL LOCATION
, STORAGE CREDENTIAL
ユーザーは、外部ロケーションまたはストレージ資格情報を使用して、クラウド テナントに外部テーブルを直接作成できます。 Databricks では、ストレージ資格情報ではなく外部ロケーションにこの特権を付与することをお勧めします (パスにスコープが設定されているため、ユーザーがクラウド テナントで外部テーブルを作成できる場所をより細かく制御できます)。
フォーリンカタログの作成
適用可能なオブジェクトタイプ: CONNECTION
レイクハウス フェデレーション シナリオで、外部データベースへの接続を使用してフォーリンカタログを作成できるようにします。
CREATE FUNCTION
適用可能なオブジェクトタイプ: SCHEMA
ユーザーがスキーマに関数を作成できるようにします。 特権は継承されるため、 CREATE FUNCTION
カタログにも付与でき、ユーザーはカタログ内の既存または将来のスキーマに関数を作成できます。
また、ユーザーは、親カタログに対する USE CATALOG
特権と、親スキーマに対する USE SCHEMA
特権を持っている必要があります。
モデルの作成
適用可能なオブジェクトタイプ: SCHEMA
ユーザーがスキーマに MLflow 登録済みモデルを作成できるようにします。 特権は継承されるため、カタログに CREATE MODEL
を付与することもでき、ユーザーはカタログ内の既存または将来のスキーマに登録済みモデルを作成できます。
また、ユーザーは、親カタログに対する USE CATALOG
特権と、親スキーマに対する USE SCHEMA
特権を持っている必要があります。
管理対象ストレージの作成
適用可能なオブジェクトタイプ: EXTERNAL LOCATION
ユーザーは、カタログ レベルまたはスキーマ レベルでマネージ テーブルを格納する場所を指定し、メタストアの既定のルート ストレージをオーバーライドできます。
CREATE TABLE
適用可能なオブジェクトタイプ: SCHEMA
ユーザーがスキーマにテーブルまたはビューを作成できるようにします。 特権は継承されるため、カタログに対して CREATE TABLE
を付与することもでき、ユーザーはカタログ内の既存または将来のスキーマにテーブルまたはビューを作成できます。
また、ユーザーは、親カタログに対する USE CATALOG
特権と、親スキーマに対する USE SCHEMA
特権を持っている必要があります。
ボリュームの作成
適用可能なオブジェクトタイプ: SCHEMA
ユーザーがスキーマにボリュームを作成できるようにします。 特権は継承されるため、カタログに CREATE VOLUME
を付与することもでき、ユーザーはカタログ内の既存または将来のスキーマにボリュームを作成できます。
ユーザーは、ボリュームの親カタログに対する USE CATALOG
特権と、その親スキーマに対する USE SCHEMA
特権も持っている必要があります。
実行する
適用可能なオブジェクトタイプ: FUNCTION
, REGISTERED MODEL
ユーザーが親カタログに USE CATALOG
を持ち、親スキーマに USE SCHEMA
がある場合、ユーザーはユーザー定義関数を呼び出したり、推論のためにモデルをロードしたりできます。 関数の場合、 EXECUTE
関数は、関数定義とメタデータを表示する権限を付与します。 登録済みモデルの場合、 EXECUTE
は、登録済みモデルのすべてのバージョンのメタデータを表示し、モデル ファイルをダウンロードする権限を付与します。
特権は継承されるため、カタログまたはスキーマに対する EXECUTE
特権をユーザーに付与すると、カタログまたはスキーマ内の現在および将来のすべての関数に対する EXECUTE
特権が自動的にユーザーに付与されます。
許可リストの管理
適用可能なオブジェクトの種類: Unity Catalog メタストア
ユーザーは、共有アクセス モードで Unity Catalog対応クラスターを管理する許可リスト内の initScript、JAR、および Maven 座標のパスを追加または変更できます。 共有コンピュートの許可リストライブラリとinitスクリプトを参照してください。
修飾する
適用可能なオブジェクトタイプ: TABLE
ユーザーがテーブルに対して SELECT
、親カタログに USE CATALOG
、親スキーマに USE SCHEMA
を持っている場合、ユーザーがテーブルに対してデータを追加、更新、および削除できるようにします。
特権は継承されるため、カタログまたはスキーマに対する MODIFY
特権をユーザーに付与すると、カタログまたはスキーマ内の現在および将来のすべての表に対する MODIFY
特権が自動的にユーザーに付与されます。
ファイルの読み取り
適用可能なオブジェクトタイプ: VOLUME
, EXTERNAL LOCATION
ユーザーがクラウドオブジェクトストレージから直接ファイルを読み取ることを許可します。 Databricks では、ボリュームに対してこの特権を付与し、限られたユース ケースでは外部の場所に付与することをお勧めします。 詳細なガイダンスについては、「外部 の場所、外部テーブル、および外部ボリュームの管理」を参照してください。
読み取りボリューム
適用可能なオブジェクトタイプ: VOLUME
ユーザーが親カタログにも USE CATALOG
し、親スキーマにも USE SCHEMA
がある場合、ボリューム内に格納されているファイルとディレクトリを読み取ることができます。
特権は継承されます。 カタログまたはスキーマに対する READ VOLUME
特権をユーザーに付与できる場合、カタログまたはスキーマ内の現在および将来のすべてのボリュームに対する READ VOLUME
特権をユーザーに自動的に付与します。
選ぶ
適用可能なオブジェクトタイプ: TABLE
, VIEW
, SHARE
テーブルまたはビューに適用した場合、ユーザーが親カタログにも USE CATALOG
し、親スキーマにも USE SCHEMA
がある場合、ユーザーはテーブルまたはビューから選択できるようになります。 共有に適用すると、受信者は共有から選択できます。
権限は継承されるため、カタログまたはスキーマに対する SELECT
権限をユーザーに付与すると、カタログまたはスキーマ内の現在および将来のすべてのテーブル、およびビューに対する SELECT
権限が自動的に付与されます。
カタログを使用
適用可能なオブジェクトタイプ: CATALOG
この特権は、カタログ自体へのアクセスを許可しませんが、ユーザーがカタログ内の任意のオブジェクトと対話するために必要です。 たとえば、テーブルからデータを選択するには、ユーザーはそのテーブルに対する SELECT
権限、親カタログに対する USE CATALOG
権限、および親スキーマに対する USE SCHEMA
権限を持っている必要があります。
これは、カタログ所有者が、個々のスキーマおよびテーブル所有者が生成するデータを共有できる範囲を制限できるようにする場合に便利です。 たとえば、別のユーザーに SELECT
を付与するテーブル所有者は、親カタログに対する USE CATALOG
権限と親スキーマに対する USE SCHEMA
権限も付与されていない限り、そのユーザーにテーブルへの読み取りアクセスを許可しません。
ユーザーがそのカタログに対するBROWSE
権限を持っている場合、親カタログに対するUSE CATALOG
権限は、オブジェクトのメタデータを読み取るために必要ありません。
接続を使用
適用可能なオブジェクトタイプ: CONNECTION
ユーザーは、レイクハウス フェデレーション シナリオで外部データベースへの接続に関する詳細を一覧表示および表示できます。 接続のフォーリンカタログを作成するには、接続に対する CREATE FOREIGN CATALOG
または接続の所有権が必要です。
スキーマを使用する
適用可能なオブジェクトタイプ: SCHEMA
この特権は、スキーマ自体へのアクセスを許可しませんが、ユーザーがスキーマ内の任意のオブジェクトと対話するために必要です。 たとえば、テーブルからデータを選択するには、ユーザーはそのテーブルに対する SELECT
権限を持ち、その親スキーマとその親カタログに対する USE CATALOG
USE SCHEMA
必要があります。
特権は継承されるため、カタログに対する USE SCHEMA
特権をユーザーに付与すると、カタログ内の現在および将来のすべてのスキーマに対する USE SCHEMA
特権が自動的にユーザーに付与されます。
ユーザーがそのスキーマまたはその親カタログに対するBROWSE
特権を持っている場合、親スキーマに対するUSE SCHEMA
特権は、オブジェクトのメタデータを読み取るためには必要ありません。
ファイルの書き込み
適用可能なオブジェクトタイプ: VOLUME
,EXTERNAL LOCATION
ユーザーがクラウドオブジェクトストレージにファイルを直接書き込めるようにします。 Databricks では、ボリュームに対してこの特権を付与することをお勧めします。 この特権は、外部の場所に対して控えめに付与してください。 詳細なガイダンスについては、「外部 の場所、外部テーブル、および外部ボリュームの管理」を参照してください。
Delta Sharing または Databricks Marketplace にのみ適用される特権タイプ
このセクションでは、 Delta Sharingにのみ適用される権限タイプについて詳しく説明します。
プロバイダーの作成
適用可能なオブジェクトの種類: Unity Catalog メタストア
ユーザーがメタストア内にDelta Sharingプロバイダー オブジェクトを作成できるようにします。 プロバイダーは、 Delta Sharing使用してデータを共有している組織またはユーザーのグループを識別します。 プロバイダーの作成は、受信者の Databricks アカウントのユーザーによって実行されます。 Delta Sharing使用してデータと AI アセットを安全に共有するを参照してください。
CREATE RECIPIENT
適用可能なオブジェクトの種類: Unity Catalog メタストア
ユーザーがメタストア内にDelta Sharing受信者オブジェクトを作成できるようにします。 受信者は、 Delta Sharingを使用してデータを共有できる組織またはユーザーのグループを識別します。 受信者の作成は、プロバイダーの Databricks アカウントのユーザーによって実行されます。 Delta Sharing使用してデータと AI アセットを安全に共有するを参照してください。
Marketplace 資産の使用
適用可能なオブジェクトの種類: Unity Catalog メタストア
すべてのメタストア Unity Catalog 既定で有効になっています。 Databricks Marketplace では、この特権により、ユーザーは、マーケットプレースの一覧で共有されているデータ製品にすぐにアクセスしたり、アクセスを要求したりできます。 また、ユーザーは、プロバイダーがデータ製品を共有するときに作成される読み取り専用カタログにアクセスできます。 この権限がない場合、ユーザーには CREATE CATALOG
および USE PROVIDER
権限、またはメタストア管理者ロールが必要になります。 これにより、これらの強力なアクセス許可を持つユーザーの数を制限できます。
プロバイダーを使用する
適用可能なオブジェクトの種類: Unity Catalog メタストア
Delta Sharing で、受信者メタストア内のすべてのプロバイダーとその共有に対する読み取り専用アクセス権を受信者ユーザーに付与します。 CREATE CATALOG
特権と組み合わせると、メタストア管理者ではない受信者ユーザーが共有をカタログとしてマウントできるようになります。これにより、強力なメタストア管理者ロールを持つユーザーの数を制限できます。
受信者を使用
適用可能なオブジェクトの種類: Unity Catalog メタストア
Delta Sharing で、プロバイダー メタストア内のすべての受信者とその共有に対する読み取り専用アクセス権をプロバイダー ユーザーに付与します。 これにより、メタストア管理者ではないプロバイダー ユーザーは、受信者の詳細、受信者の認証状態、およびプロバイダーが受信者と共有している共有の一覧を表示できます。
Databricks Marketplace では、これにより、プロバイダー ユーザーはプロバイダー コンソールでリストとコンシューマー要求を表示できます。