管理外部位置
本文說明如何列出、檢視、更新、授與許可權,以及刪除 外部位置。
注意
Databricks 建議使用磁碟區控管檔案存取。 請參閱Unity Catalog 磁碟區是什麼?。
描述外部位置
若要查看外部位置的屬性,包括許可權和工作區存取權,您可以使用目錄總管或 SQL 命令。
目錄總管
- 在提要欄位中,按兩下 [目錄]。
- 在 [ 快速存取] 頁面上,按兩下 [ 外部數據] > 按鈕以移至 [ 外部位置] 索引卷 標。
- 按兩下外部位置的名稱以檢視其屬性。
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
中繼存放區上。
若要授與許可權以使用外部位置:
目錄總管
- 在提要欄位中,按兩下 [目錄]。
- 在 [ 快速存取] 頁面上,按兩下 [ 外部數據] > 按鈕以移至 [ 外部位置] 索引卷 標。
- 按兩下外部位置的名稱,以開啟其屬性。
- 按一下 [權限]。
- 若要將許可權授與使用者或群組,請選取每個身分識別,然後按兩下 [ 授與]。
- 若要撤銷使用者或群組的許可權,請選取每個身分識別,然後按兩下 [ 撤銷]。
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 目錄許可權為何。
- 防止使用者在這些外部位置建立受控數據表或磁碟區。
- 可讓系統在建立時正確驗證外部位置。
當您建立外部位置時,您可以將外部位置標示為唯讀。
您也可以在建立外部位置之後,使用目錄總管來變更唯讀狀態:
- 在提要欄位中,按兩下 [目錄]。
- 在 [ 快速存取] 頁面上,按兩下 [ 外部數據] > 按鈕以移至 [ 外部位置] 索引卷 標。
- 選取外部位置,按兩下 [測試連線] 按鈕旁的 [動作] 功能表,然後選取 [編輯]。
- 在 [編輯] 對話框中,按兩下 [進階選項 ],然後選取 [ 限制為只讀使用 ] 選項。
- 按一下更新。
修改外部位置
外部位置的擁有者可以重新命名、變更 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>;