Unity カタログへの外部データ アクセスを有効にする
Azure Databricks では、Unity REST API と Iceberg REST カタログを使用して Unity カタログ テーブルにアクセスできます。
メタストア管理者は、外部からアクセスする必要がある各メタストアに対して外部データ アクセスを有効にする必要があります。 接続を構成するユーザーまたはサービス プリンシパルには、外部で読み取る必要があるテーブルを含むスキーマごとに EXTERNAL USE SCHEMA
権限が必要です。
Unity REST API では、Delta テーブルの直接読み取りがサポートされています。Iceberg REST カタログでは、Iceberg 読み取りが有効になっているテーブルの読み取りがサポートされます。 外部システム を使用して Databricks データにアクセスするを参照してください。
メタストアで外部データ アクセスを有効にする
外部エンジンがメタストア内のデータにアクセスできるようにするには、メタストア管理者がメタストアの外部データ アクセスを有効にする必要があります。 このオプションは、承認されていない外部アクセスを防ぐために既定で無効になっています。
外部データ アクセスを有効にするには、次の操作を行います。
- メタストアに接続されている Azure Databricks ワークスペースで、
カタログをクリックします。
- [カタログ] ペインの上部にある
歯車アイコンをクリックし、[Metastore] (メタストア) を選択します。
- [の詳細] タブで、外部データ アクセス を有効にします。
注
これらのオプションは、十分な特権を持つユーザーに対してのみ表示されます。 これらのオプションが表示されない場合は、メタストアの外部データ アクセスを有効にするアクセス許可がありません。
プリンシパル EXTERNAL USE SCHEMA
を付与する
Azure Databricks に接続する外部クライアントには、十分な特権を持つプリンシパルからの承認が必要です。
Azure Databricks では、認証用の OAuth および個人用アクセス トークン (PAT) がサポートされています。 Azure Databricks リソースへのアクセスの承認に関するページを参照してください。
一時資格情報を要求するプリンシパルには、次のものが必要です。
含まれるスキーマまたはその親カタログに対する
EXTERNAL USE SCHEMA
特権。この特権は常に明示的に付与する必要があります。 親カタログ所有者のみが付与できます。 偶発的な流出を回避するために、
ALL PRIVILEGES
にはEXTERNAL USE SCHEMA
特権は含まれません。スキーマ所有者には既定でこの権限がありません。テーブルに対する
SELECT
権限、親カタログにUSE CATALOG
権限、および親スキーマに対するUSE SCHEMA
。
次の構文例は、ユーザーに EXTERNAL USE SCHEMA
を付与する方法を示しています。
GRANT EXTERNAL USE SCHEMA ON SCHEMA catalog_name.schema_name TO `user@company.com`
ユーザーがスキーマ内のすべての必要なテーブルを読み取るアクセス許可を持っていると仮定すると、追加のアクセス許可は必要ありません。 テーブルを読み取るために追加のアクセス許可を付与する必要がある場合は、Unity カタログ権限とセキュリティ保護可能なオブジェクトを参照してください。