次の方法で共有


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

Important

この機能は パブリック プレビュー段階です。 プレビューの登録は、[ プレビュー ] ページで確認できます。 Azure Databricks プレビューの管理を参照してください。

Azure Databricks では、Unity REST API と Apache Iceberg REST カタログを使用して Unity カタログ テーブルにアクセスできます。

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

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

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

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

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

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

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

プリンシパルの Unity カタログ権限を付与する

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

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

一時資格情報を要求するプリンシパルには、次のものが必要です。

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

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

  • テーブルに対する SELECT 権限、親カタログに USE CATALOG 権限、および親スキーマに対する USE SCHEMA

  • 外部テーブルを作成する場合、プリンシパルには、スキーマに対する CREATE TABLE 特権と、ターゲット外部の場所に対する CREATE EXTERNAL TABLEEXTERNAL USE LOCATION の両方の特権も必要です。

    EXTERNAL USE LOCATION は常に明示的に付与する必要があります。 外部の場所に対する MANAGE 権限を持つユーザーのみが付与できます。 偶発的な流出を回避するために、 ALL PRIVILEGES には EXTERNAL USE LOCATION 特権は含まれません。場所の所有者には既定でこの特権がありません。

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

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

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

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

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