儲存體 認證

適用於:check marked yesDatabricks SQL check marked yes Databricks Runtime check marked yes Unity 目錄

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

儲存體認證

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

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

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

儲存體 認證名稱不合格,而且在中繼存放區內必須是唯一的。

關聯性的圖形表示法

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

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

External location ER diagram

範例

使用 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';