凭据
适用于: Databricks SQL Databricks Runtime 仅 Unity Catalog
Unity Catalog 和内置 Azure Databricks Hive 元存储使用托管表的默认位置。 Unity Catalog 引入了几个新的安全对象来授予云对象存储中的外部云服务和数据权限。
-
用于从云服务和存储提供程序处提取长期凭证的 Unity Catalog 对象。
存储凭据
用于访问外部位置和表的 Unity Catalog 凭证。
服务凭证
重要
此功能目前以公共预览版提供。
用于使用提供程序 SDK 访问外部云服务的 Unity Catalog 凭证。 有关详细信息,请参阅使用服务凭证管理对外部云服务的访问。
-
用于将云对象存储 URI 与存储凭据相关联的 Unity Catalog 对象。
凭据
凭证是表示 Azure 托管标识或 Microsoft Entra ID 服务主体的安全对象。
创建凭证后,可以向主体(用户和组)授予其访问权限。
存储凭据主要用于创建外部位置,这些位置将访问范围限定为特定存储路径。
凭证名称是非限定的,并且在元存储中必须是唯一的。
关系的图形表示
下图描述了它们之间的关系:
- 存储凭据
- 外部位置
- 外部表
- 存储路径
- IAM 实体
- Azure 服务帐户
示例
使用 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';