外部ロケーションを管理する

この記事では、 外部ロケーションの一覧表示、表示、更新、アクセス許可の付与、および削除の方法について説明します。

注:

Databricks では、ボリュームを使用してファイル アクセスを管理することをお勧めします。 Unity Catalogボリュームとはを参照してください

外部ロケーションの説明

権限やワークスペースへのアクセスなど、外部ロケーションのプロパティを表示するには、Catalog Explorer または SQL コマンドを使用できます。

  1. サイドバーで、「カタログアイコン カタログ 」をクリックします。

  2. [クイック アクセス] ページで、[外部データ >] ボタンをクリックして外部ロケーション タブに移動します。

  3. 外部ロケーションの名前をクリックすると、そのプロパティが表示されます。

ノートブックまたは Databricks SQL エディターで次のコマンドを実行します。 <location-name> を外部ロケーションの名前に置き換えます。

DESCRIBE EXTERNAL LOCATION <location-name>;

外部ロケーションの権限を表示する

外部ロケーションに許可を表示するには、次のようなコマンドを使用します。 オプションで、結果をフィルタリングして、指定したプリンシパルの許可のみを表示できます。

SHOW GRANTS [<principal>] ON EXTERNAL LOCATION <location-name>;

プレースホルダーの値を置き換えます。

  • <location-name>: クラウド テナント内の GCS バケットからの読み取りと書き込みを許可する外部ロケーションの名前。

  • <principal>:アカウントレベルのユーザーのメールアドレスまたはアカウントレベルのグループの名前。

注:

グループまたはユーザー名にスペースまたは @ 記号が含まれている場合は、アポストロフィではなくバッククォートで囲みます。 たとえば 財務チーム' '.

外部ロケーションに対するアクセス許可の付与

このセクションでは、ノートブックまたはSQLクエリで Catalog Explorer と SQL コマンドを使用して、外部ロケーションに対するアクセス許可を付与および取り消す方法について説明します。代わりに Databricks CLI または Terraform を使用する方法については、 Databricks Terraform のドキュメントWhat is the Databricks CLI?.

外部ロケーションに対して次の権限を付与できます。

  • CREATE EXTERNAL TABLE

  • CREATE EXTERNAL VOLUME

  • CREATE MANAGED STORAGE

必要なアクセス許可: メタストアと外部ロケーションで参照されるストレージ資格情報の両方に対する CREATE EXTERNAL LOCATION 特権。 メタストア管理者は、デフォルトでメタストアに CREATE EXTERNAL LOCATION を持っています。

外部ロケーションの使用を許可するには:

  1. サイドバーで、「カタログアイコン カタログ 」をクリックします。

  2. [クイック アクセス] ページで、[外部データ >] ボタンをクリックして外部ロケーション タブに移動します。

  3. 外部ロケーションの名前をクリックして、そのプロパティを開きます。

  4. [アクセス許可]をクリックします。

  5. ユーザーまたはグループにアクセス許可を付与するには、各 ID を選択し、[付与]をクリックします。

  6. ユーザーまたはグループから権限を取り消すには、各 ID を選択してから [ 取り消し] をクリックします。

ノートブックまたは SQL クエリ エディターで次の SQL コマンドを実行します。 この例では、外部ロケーションを参照する外部テーブルを作成する権限を付与します。

GRANT CREATE EXTERNAL TABLE ON EXTERNAL LOCATION <location-name> TO <principal>;

プレースホルダーの値を置き換えます。

  • <location-name>: クラウド テナント内の GCS バケットからの読み取りと書き込みを許可する外部ロケーションの名前。

  • <principal>:アカウントレベルのユーザーのメールアドレスまたはアカウントレベルのグループの名前。

注:

グループまたはユーザー名にスペースまたは @ 記号が含まれている場合は、アポストロフィではなくバッククォートで囲みます。 たとえば 財務チーム' '.

外部ロケーションの所有者を変更する

外部ロケーションの作成者は、その最初の所有者です。 所有者を別のアカウント レベルのユーザーまたはグループに変更するには、ノートブックまたは Databricks SQL エディターで次のコマンドを実行するか、 カタログ エクスプローラーを使用します。 プレースホルダーの値を置き換えます。

  • <location-name>:資格情報の名前。

  • <principal>:アカウントレベルのユーザーのメールアドレスまたはアカウントレベルのグループの名前。

ALTER EXTERNAL LOCATION <location-name> OWNER TO <principal>

外部ロケーションを読み取り専用にする

ユーザーに外部ロケーションへの読み取り専用アクセスを許可する場合は、カタログエクスプローラーを使用して外部ロケーションを読み取り専用としてマークできます。

外部ロケーションを読み取り専用にする:

  • ストレージ資格情報の基になるサービス アカウントによって付与された書き込みアクセス許可や、その外部ロケーションに付与された Unity Catalog アクセス許可に関係なく、ユーザーがこれらの外部ロケーションのファイルに書き込むことを防止します。

  • ユーザーがそれらの外部ロケーションにマネージドテーブルまたはボリュームを作成できないようにします。

  • 作成時にシステムが外部ロケーションを適切に検証できるようにします。

外部ロケーションは、作成時に読み取り専用にすることができます。

カタログエクスプローラーを使用して、外部ロケーションの作成後に読み取り専用ステータスを変更することもできます。

  1. サイドバーで、「カタログアイコン カタログ 」をクリックします。

  2. [クイック アクセス] ページで、[外部データ >] ボタンをクリックして外部ロケーション タブに移動します。

  3. 外部ロケーションを選択し、「 接続のテストケバブメニュー 」ボタンの横にある「 アクション 」メニューをクリックして、「 編集 」を選択します。

  4. 編集ダイアログで、「 詳細オプション 」をクリックし、「 読み取り専用使用に制限」 オプションを選択します。

  5. [更新] をクリックします。

外部ロケーショを変更する

外部ロケーショの所有者は、外部ロケーションの名前変更、URIの変更、およびストレージ資格情報の変更を行うことができます。

外部ロケーショの名前を変更するには、次の操作を行います。

ノートブックまたは Databricks SQL エディターで次のコマンドを実行します。 プレースホルダーの値を置き換えます。

  • <location-name>:場所の名前。

  • <new-location-name>:場所の新しい名前。

ALTER EXTERNAL LOCATION <location-name> RENAME TO <new-location-name>;

クラウドテナント内の外部ロケーショが指すURIを変更するには、次の手順を実行します。

ノートブックまたは Databricks SQL エディターで次のコマンドを実行します。 プレースホルダーの値を置き換えます。

  • <location-name>:外部ロケーションの名前。

  • <url>:場所がクラウドテナント内のアクセスを承認する必要がある新しいストレージURL。

ALTER EXTERNAL LOCATION location_name SET URL '<url>' [FORCE];

FORCEオプションは、外部テーブルが外部ロケーショに依存している場合でも、URLを変更します。

外部ロケーショが使用するストレージ資格情報を変更するには、次の手順を実行します。

ノートブックまたは Databricks SQL エディターで次のコマンドを実行します。 プレースホルダーの値を置き換えます。

  • <location-name>:外部ロケーションの名前。

  • <credential-name>:クラウドテナント内の場所のURLへのアクセスを許可するストレージ資格情報の名前。

ALTER EXTERNAL LOCATION <location-name> SET STORAGE CREDENTIAL <credential-name>;

外部ロケーションを削除する

外部ロケーションを削除 (ドロップ) するには、その所有者である必要があります。 外部ロケーションを削除するには、次の操作を行います。

ノートブックまたは Databricks SQL エディターで次のコマンドを実行します。 括弧内の項目はオプションです。<location-name> を外部ロケーションの名前に置き換えます。

DROP EXTERNAL LOCATION [IF EXISTS] <location-name>;