共用方式為


Credentials

適用於:標記為 [是] Databricks SQL 標記為 [是] Databricks Runtime 標記為 [是] Unity Catalog 僅限

Unity Catalog 和內建的 Azure Databricks Hive metastore 使用管理 tables的預設位置。 Unity Catalog 引進數個新的可安全管理的物件,以授權 grant 在雲端物件存儲中的外部雲端服務和數據的權限。

認證

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

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

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

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

關聯性的圖形表示法

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

  • 記憶體 credentials
  • 外部位置
  • 外部 tables
  • 記憶體路徑
  • 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';