メインコンテンツまでスキップ

Unity Catalog での特権の管理

この記事では、Unity Catalog 内のデータやその他のオブジェクトへのアクセスを制御する方法について説明します。 このモデルがHive metastoreのアクセス制御とどのように異なるかについては、Unity Catalogおよび従来のHive metastoreの操作を参照してください。

特権を管理できるのは誰ですか?

最初は、ユーザーはメタストア内のデータにアクセスできません。 Databricks アカウント管理者、ワークスペース管理者、およびメタストア管理者には、 Unity Catalogを管理するためのデフォルトの特権があります。 「Unity Catalog の管理者特権」を参照してください。

Unity Catalog 内のすべてのセキュリティ保護可能なオブジェクトには所有者がいます。 オブジェクト所有者は、他のプリンシパルに権限を付与する機能を含め、そのオブジェクトに対するすべての権限を持ちます。 所有者は、オブジェクトに対する MANAGE 権限を他のユーザーに付与でき、これによりユーザーはオブジェクトに対する権限を管理できます。 「Unity Catalog オブジェクトの所有権の管理」を参照してください。

特権は、次のいずれかによって付与できます。

  • メタストア管理者。
  • オブジェクトに対する MANAGE 権限を持つユーザー。
  • オブジェクトの所有者。
  • オブジェクトを含むカタログまたはスキーマの所有者。

アカウント管理者は、メタストアで直接権限を付与することもできます。

ワークスペースカタログの権限

ワークスペースでUnity Catalogが自動的に有効になった場合、ワークスペースはデフォルトでメタストアにアタッチされ、メタストア内のワークスペースのワークスペースカタログが作成されます。ワークスペース管理者は、ワークスペースカタログのデフォルト所有者です。所有者は、ワークスペースカタログとすべての子オブジェクトに対する権限を管理できます。

すべてのワークスペース ユーザーは、ワークスペース カタログに対する USE CATALOG 権限を受け取ります。 ワークスペース ユーザーは、カタログ内のdefaultスキーマに対する USE SCHEMACREATE TABLECREATE VOLUMECREATE MODELCREATE FUNCTION、および CREATE MATERIALIZED VIEW 特権も受け取ります。

詳細については、「Unity Catalogの自動有効化」を参照してください。

継承モデル

Unity Catalog のセキュリティ保護可能なオブジェクトは階層的であり、特権は下位に継承されます。 特権の継承元となる最上位のオブジェクトはカタログです。 つまり、カタログまたはスキーマに対する権限を付与すると、カタログまたはスキーマ内の現在および将来のすべてのオブジェクトに権限が自動的に付与されます。 たとえば、カタログに対する SELECT 権限をユーザーに付与すると、そのユーザーはそのカタログ内のすべてのテーブルとビューを選択 (読み取り) できるようになります。 Unity Catalog メタストアで付与された特権は継承されません。

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

オブジェクトの所有者には、そのオブジェクトに対するすべての権限が自動的に付与されます。さらに、オブジェクトの所有者は、オブジェクト自体とそのすべての子オブジェクトに対する権限を付与できます。つまり、スキーマの所有者は、スキーマ内のテーブルに対するすべての権限を自動的に持つわけではありませんが、スキーマ内のテーブルに対する権限を自分自身に付与できます。

注記

パブリック プレビュー中 (2022 年 8 月 25 日より前) に Unity Catalog メタストアを作成した場合は、現在の継承モデルをサポートしていない以前の特権モデルを使用している可能性があります。 Privilege Model バージョン 1.0 にアップグレードして、特権の継承を取得できます。 「特権の継承へのアップグレード」を参照してください。

権限の表示、付与、取り消し

メタストア オブジェクトの特権は、SQL コマンド、Databricks CLI、Databricks Terraform プロバイダー、またはカタログ エクスプローラーを使用して管理できます。

次の SQL コマンドで、次のプレースホルダー値を置き換えます。

  • <privilege-type> は Unity Catalog の特権の種類です。 権限タイプを参照してください。
  • <securable-type>: セキュリティ保護可能なオブジェクトのタイプ ( CATALOGTABLEなど)。 「セキュリティ保護可能なオブジェクト」を参照してください
  • <securable-name>: セキュリティ保護可能なリソースの名前。 セキュリティ保護可能な種類が METASTOREの場合は、セキュリティ保護可能な名前を指定しないでください。 これは、ワークスペースにアタッチされたメタストアと見なされます。
  • <principal> はユーザー、サービスプリンシパル (applicationId 値で表される)、またはグループです。 特殊文字を含むユーザー名、サービスプリンシパル名、およびグループ名は、バッククォート ( ) で囲む必要があります。「プリンシパル」を参照してください。

Unity Catalog メタストア内のオブジェクトに対する許可を表示する

注記

現在、オブジェクトに対する MANAGE 権限を持つユーザは、 INFORMATION_SCHEMAでそのオブジェクトに対するすべての付与を表示することはできません。 代わりに、 INFORMATION_SCHEMA には、オブジェクトに対する独自の許可のみが表示されます。 この動作は今後修正される予定です。

MANAGE権限を持つユーザーは、SQL コマンドまたはカタログエクスプローラを使用して、オブジェクトに対するすべての権限を表示できます。「Unity Catalog での特権の管理」を参照してください。

必要な権限:

  • メタストア管理者、オブジェクトに対する MANAGE 権限を持つユーザー、オブジェクトの所有者、またはオブジェクトを含むカタログまたはスキーマの所有者は、オブジェクトに対するすべての権限を表示できます。
  • 上記の権限がない場合、オブジェクトに対する自分の権限のみを表示できます。
  1. In your Databricks workspace, click Catalog icon Catalog.
  2. Select the object, such as a catalog, schema, table, or view.
  3. Go to the Permissions tab.

Unity Catalog メタストア内のオブジェクトに対する権限の表示

必要な権限: オブジェクトに対する自分の権限はいつでも表示できます。

  1. In your Databricks workspace, click Catalog icon Catalog.
  2. Select the object, such as a catalog, schema, table, or view.
  3. Go to the Permissions tab. If you are not an object owner or metastore admin, you can view only your own grants on the object.

Unity Catalog メタストア内のオブジェクトに対するアクセス許可を付与する

必要な権限: メタストア管理者、オブジェクトに対する MANAGE 権限、オブジェクトの所有者、またはオブジェクトを含むカタログまたはスキーマの所有者。

  1. In your Databricks workspace, click Catalog icon Catalog.
  2. Select the object, such as a catalog, schema, table, or view.
  3. Go to the Permissions tab.
  4. Click Grant.
  5. Enter the email address for a user or the name of a group.
  6. Select the permissions to grant.
  7. Click OK.

Unity Catalog メタストア内のオブジェクトに対するアクセス許可を取り消す

必要な権限: メタストア管理者、オブジェクトに対する MANAGE 権限、オブジェクトの所有者、またはオブジェクトを含むカタログまたはスキーマの所有者。

  1. In your Databricks workspace, click Catalog icon Catalog.
  2. Select the object, such as a catalog, schema, table, or view.
  3. Go to the Permissions tab.
  4. Select a privilege that has been granted to a user, service principal, or group.
  5. Click Revoke.
  6. To confirm, click Revoke.

メタストアでの許可の表示

必要な権限: メタストア管理者またはアカウント管理者。 また、メタストアで自分の権限を表示することもできます。

  1. In your Databricks workspace, click Catalog icon Catalog.
  2. Next to the Catalog Explorer page label, click the icon next to the metastore name.
  3. Go to the Permissions tab.

メタストアに権限を付与する

必要な権限: メタストア管理者またはアカウント管理者。

  1. In your Databricks workspace, click Catalog icon Catalog.
  2. Next to the Catalog Explorer page label, click the icon next to the metastore name.
  3. On the Permissions tab, click Grant.
  4. Enter the email address for a user or the name of a group.
  5. Select the permissions to grant.
  6. Click OK.

メタストアの権限を取り消す

必要な権限: メタストア管理者またはアカウント管理者。

  1. In your Databricks workspace, click Catalog icon Catalog.
  2. Next to the Catalog Explorer page label, click the icon next to the metastore name.
  3. On the Permissions tab, select a user or group and click Revoke.
  4. To confirm, click Revoke.