共用方式為


管理外部位置

本文說明如何列出、檢視、更新、授與許可權,以及刪除 外部位置

注意

Databricks 建議使用磁碟區控管檔案存取。 請參閱Unity Catalog 磁碟區是什麼?

描述外部位置

若要查看外部位置的屬性,包括許可權和工作區存取權,您可以使用目錄總管或 SQL 命令。

目錄總管

  1. 在提要欄位中,按兩下 目錄圖示 [目錄]。
  2. 在 [ 快速存取] 頁面上,按兩下 [ 外部數據] > 按鈕以移至 [ 外部位置] 索引卷 標。
  3. 按兩下外部位置的名稱以檢視其屬性。

SQL

在筆記本或 Databricks SQL 編輯器中執行下列命令。 將取代 <location-name> 為外部位置的名稱。

DESCRIBE EXTERNAL LOCATION <location-name>;

在外部位置上顯示授與

若要在外部位置顯示授與,請使用如下的命令。 您可以選擇性地篩選結果,只顯示指定主體的授與。

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

取代預留位置值:

  • <location-name>:授權讀取和寫入雲端租用戶中記憶體容器路徑的外部位置名稱。
  • <principal>:帳戶層級用戶的電子郵件地址或帳戶層級群組的名稱。

注意

如果群組或使用者名稱包含空格或 @ 符號,請使用其周圍的反向刻度(而非單引號)。 例如 財務小組

授與外部位置的許可權

本節說明如何使用筆記本或 SQL 查詢中的目錄總管和 SQL 命令,授與和撤銷外部位置的許可權。 如需改用 Databricks CLI 或 Terraform 的相關信息,請參閱 Databricks Terraform 檔和什麼是 Databricks CLI?

您可以授與外部位置的下列權限:

  • CREATE EXTERNAL TABLE
  • CREATE EXTERNAL VOLUME
  • CREATE MANAGED STORAGE

必要許可權:中繼 CREATE EXTERNAL LOCATION 存放區和外部位置所參考之記憶體認證的許可權。 中繼存放區管理員預設在 CREATE EXTERNAL LOCATION 中繼存放區上。

若要授與許可權以使用外部位置:

目錄總管

  1. 在提要欄位中,按兩下 目錄圖示 [目錄]。
  2. 在 [ 快速存取] 頁面上,按兩下 [ 外部數據] > 按鈕以移至 [ 外部位置] 索引卷 標。
  3. 按兩下外部位置的名稱,以開啟其屬性。
  4. 按一下 [權限]
  5. 若要將許可權授與使用者或群組,請選取每個身分識別,然後按兩下 [ 授與]。
  6. 若要撤銷使用者或群組的許可權,請選取每個身分識別,然後按兩下 [ 撤銷]。

SQL

在筆記本或 SQL 查詢編輯器中,執行下列 SQL 命令。 此範例會授與建立參考外部位置的外部資料表的能力:

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

取代預留位置值:

  • <location-name>:授權讀取和寫入雲端租用戶中記憶體容器路徑的外部位置名稱。
  • <principal>:帳戶層級用戶的電子郵件地址或帳戶層級群組的名稱。

注意

如果群組或使用者名稱包含空格或 @ 符號,請使用其周圍的反向刻度(而非單引號)。 例如 財務小組

變更外部位置的擁有者

外部位置的建立者是其初始擁有者。 若要將擁有者變更為不同的帳戶層級使用者或群組,請在筆記本或 Databricks SQL 編輯器中執行下列命令,或使用 目錄總管。 取代預留位置值:

  • <location-name>:認證的名稱。
  • <principal>:帳戶層級用戶的電子郵件地址或帳戶層級群組的名稱。
ALTER EXTERNAL LOCATION <location-name> OWNER TO <principal>

將外部位置標示為唯讀

如果您希望使用者具有外部位置的唯讀存取權,您可以使用目錄總管將外部位置標示為唯讀。

將外部位置設定為唯讀:

  • 防止使用者寫入這些外部位置的檔案,不論 Azure 受控識別授與的任何寫入許可權都低於記憶體認證,以及不論該外部位置上授與的 Unity 目錄許可權為何。
  • 防止使用者在這些外部位置建立受控數據表或磁碟區。
  • 可讓系統在建立時正確驗證外部位置。

當您建立外部位置時,您可以將外部位置標示為唯讀。

您也可以在建立外部位置之後,使用目錄總管來變更唯讀狀態:

  1. 在提要欄位中,按兩下 目錄圖示 [目錄]。
  2. 在 [ 快速存取] 頁面上,按兩下 [ 外部數據] > 按鈕以移至 [ 外部位置] 索引卷 標。
  3. 選取外部位置,按兩下 Kebab 功能表 [測試連線] 按鈕旁的 [動作] 功能表,然後選取 [編輯]。
  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>;