共用方式為


認證

適用於:核取記號為「是」Databricks SQL 核取記號為「是」Databricks Runtime 核取記號為「是」Unity 目錄

Unity 目錄和內建的 Azure Databricks Hive 中繼存放區會使用受控數據表的預設位置。 Unity 目錄引進數個新的安全性實體物件,以將許可權授與外部雲端服務和雲端物件記憶體中的數據。

  • 憑據

    Unity Catalog 物件,用來從雲端服務和記憶體提供者擷取長期認證。

    • 記憶體認證

      用來存取外部位置和數據表的 Unity 目錄認證。

    • 服務認證

      重要

      這項功能處於公開預覽狀態

      用來使用提供者 SDK 存取外部雲端服務的 Unity 目錄認證。 如需詳細資訊,請參閱 使用服務認證管理外部雲端服務的存取權。

  • 外部位置

    Unity Catalog 物件,用來將雲端物件記憶體 URI 與 記憶體認證產生關聯。

  • 外部數據表

    在 Unity 目錄管理的外部位置中建立的 Unity 目錄數據表

認證

認證是安全性實體物件,代表 Azure 受控識別或Microsoft Entra ID 服務主體。

建立認證之後,即可將存取權授與 主體 (使用者和群組)。

記憶體認證主要用於建立 外部位置,以限定特定記憶體路徑的存取範圍。

認證名稱 不限定,而且在中繼存放區內必須是唯一的。

關聯性的圖形表示法

下圖描述兩者之間的關聯性:

  • 記憶體認證
  • 外部位置
  • 外部數據表
  • 記憶體路徑
  • IAM 實體
  • Azure 服務帳戶

外部位置 ER 圖表

範例

使用 CLI 建立Microsoft Entra ID 服務主體的記憶體認證 my_azure_storage_cred

databricks storage-credentials create --json '{"name": "my_azure_storage_cred", "azure_service_principal": {"directory_id": "12345678-9abc-def0-1234-56789abcdef0", "application_id": "23456789-9abc-def0-1234-56789abcdef0", "client_secret": "Cli3nt5ecr3t"}}'

其餘的命令可以在 SQL 中執行。

-- Grant access to the storage credential
> GRANT READ FILES ON STORAGE CREDENTIAL my_azure_storage_cred TO ceo;

-- ceo can directly read from any storage path using myazure_storage_cred
> SELECT count(1) FROM `delta`.`abfss://container@storageaccount.dfs.core.windows.net/depts/finance/forecast/somefile` WITH (CREDENTIAL my_azure_storage_cred);
  100
> SELECT count(1) FROM `delta`.`abfss://container@storageaccount.dfs.core.windows.net/depts/hr/employees` WITH (CREDENTIAL my_azure_storage_cred);
  2017

-- Create an external location on specific path to which `my_azure_storage_cred` has access
> CREATE EXTERNAL LOCATION finance_loc URL 'abfss://container@storageaccount.dfs.core.windows.net/depts/finance'
    WITH (CREDENTIAL my_azure_storage_cred)
    COMMENT 'finance';