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

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 MODEL、および CREATE FUNCTION 特権も受け取ります。

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

継承モデル

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

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

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

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

メタストア オブジェクトの特権は、SQL コマンド、Databricks CLIDatabricks 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. Databricks ワークスペースで、カタログアイコン カタログ をクリックします。
  2. オブジェクト (カタログ、スキーマ、テーブル、ビューなど) を選択します。
  3. 権限 タブに移動します。

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

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

  1. Databricks ワークスペースで、カタログアイコン カタログ をクリックします。
  2. オブジェクト (カタログ、スキーマ、テーブル、ビューなど) を選択します。
  3. [権限 ]タブに移動します。オブジェクトの所有者またはメタストア管理者でない場合は、オブジェクトに対する自分の権限のみを表示できます。

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

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

  1. Databricks ワークスペースで、カタログアイコン カタログ をクリックします。
  2. オブジェクト (カタログ、スキーマ、テーブル、ビューなど) を選択します。
  3. 権限 タブに移動します。
  4. 付与 をクリックします。
  5. ユーザーのEメールアドレスまたはグループの名前を入力します。
  6. 付与する権限を選択します。
  7. OK をクリックします。

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

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

  1. Databricks ワークスペースで、カタログアイコン カタログ をクリックします。
  2. オブジェクト (カタログ、スキーマ、テーブル、ビューなど) を選択します。
  3. 権限 タブに移動します。
  4. ユーザー、サービスプリンシパル、またはグループに付与されている権限を選択します。
  5. 取り消し をクリックします。
  6. 確認するには、[ 取り消し] をクリックします。

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

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

  1. Databricks ワークスペースで、カタログアイコン カタログ をクリックします。
  2. 「カタログエクスプローラ 」ページラベルの横にあるメタストア名の横にあるアイコンをクリックします。
  3. 権限 タブに移動します。

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

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

  1. Databricks ワークスペースで、カタログアイコン カタログ をクリックします。
  2. 「カタログエクスプローラ 」ページラベルの横にあるメタストア名の横にあるアイコンをクリックします。
  3. アクセス許可 タブで、 許可 をクリックします。
  4. ユーザーのEメールアドレスまたはグループの名前を入力します。
  5. 付与する権限を選択します。
  6. OK をクリックします。

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

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

  1. Databricks ワークスペースで、カタログアイコン カタログ をクリックします。
  2. 「カタログエクスプローラ 」ページラベルの横にあるメタストア名の横にあるアイコンをクリックします。
  3. [権限] タブで、ユーザーまたはグループを選択し、[ 取り消し] をクリックします。
  4. 確認するには、[ 取り消し] をクリックします。