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

Unity Catalog への外部データ アクセスを有効にする

DatabricksUnity Catalogでは、UnityRESTAPI と カタログを使用してApacheIcebergREST テーブルにアクセスできます。

メタストア管理者は、外部からアクセスする必要があるメタストアごとに外部データ アクセスを有効にする必要があります。接続を構成するユーザーまたはサービスプリンシパルは、サポートされている操作 (マネージドテーブルからの読み取り、または外部テーブルの作成、読み取り、および書き込み) を実行する必要がある各スキーマの EXTERNAL USE SCHEMA 権限を持っている必要があります。

Unity REST API は、Delta テーブルの直接読み取りをサポートしています。Iceberg REST カタログは、Delta テーブルの読み取りと Iceberg テーブルの読み取りと書き込みをサポートしています。「外部システムを使用した Databricks データへのアクセス」を参照してください。

メタストアでの外部データ アクセスを有効にする

外部エンジンがメタストア内のデータにアクセスできるようにするには、メタストア管理者がメタストアの外部データ アクセスを有効にする必要があります。 このオプションは、不正な外部アクセスを防ぐために、デフォルトでは無効になっています。

外部データアクセスを有効にするには、次の操作を行います。

  1. メタストアに接続されている Databricks ワークスペースで、データアイコン。 カタログ をクリックします。
  2. カタログ ペインの上部にある歯車アイコン歯車のアイコン。をクリックし、 メタストア を選択します。
  3. 詳細 タブで、 外部データ アクセス を有効にします。
注記

これらのオプションは、十分な権限を持つユーザーに対してのみ表示されます。 これらのオプションが表示されない場合は、メタストアの外部データ アクセスを有効にする権限がありません。

プリンシパルに Unity Catalog 特権を付与する

Databricks に接続する外部クライアントは、十分な特権を持つプリンシパルからの承認が必要です。

Databricks では、認証に OAuth と個人用アクセス トークン (PAT) がサポートされています。 Databricks リソースへのアクセスの承認を参照してください。

一時的な資格情報を要求するプリンシパルは、次のものを持っている必要があります。

  • 含まれているスキーマまたはその親カタログに対する EXTERNAL USE SCHEMA 権限。

    この特権は、常に明示的に付与する必要があります。 親カタログの所有者のみがそれを付与できます。 偶発的な流出を避けるため、 ALL PRIVILEGES には EXTERNAL USE SCHEMA 権限は含まれておらず、スキーマの所有者にはデフォルトでこの権限がありません。

  • SELECT テーブルのアクセス許可、親カタログの USE CATALOG 、および親スキーマのアクセス許可 USE SCHEMA

  • 外部テーブルを作成する場合、プリンシパルはスキーマに対する CREATE TABLE 権限と、ターゲットの外部ロケーションに対する CREATE EXTERNAL TABLE 権限と EXTERNAL USE LOCATION 権限の両方も持っている必要があります。

    EXTERNAL USE LOCATION 常に明示的に付与する必要があります。外部ロケーションに対する MANAGE 権限を持つユーザーのみが、外部ロケーションを付与できます。偶発的な流出を回避するために、 ALL PRIVILEGES には EXTERNAL USE LOCATION 権限が含まれておらず、ロケーション所有者にはデフォルトでこの権限がありません。

次の構文例は、ユーザーに EXTERNAL USE SCHEMA を付与する方法を示しています。

SQL
GRANT EXTERNAL USE SCHEMA ON SCHEMA catalog_name.schema_name TO `user@company.com`

次の構文例は、ユーザーに EXTERNAL USE LOCATION を付与する方法を示しています。

SQL
GRANT EXTERNAL USE LOCATION ON EXTERNAL LOCATION external_location_name TO `user@company.com`

ユーザーがスキーマ内のすべての必要なテーブルを読み取る権限を持っていると仮定すると、追加の権限は必要ありません。 テーブルを読み取るための追加のアクセス許可を付与する必要がある場合は、「 Unity Catalog の特権とセキュリティ保護可能なオブジェクト」を参照してください。