Credenciais de armazenamento
Aplica-se a: Databricks SQL Databricks Runtime Unity Catalog apenas
O Catálogo Unity e o metastore interno do Azure Databricks Hive usam locais padrão para tabelas gerenciadas. O Unity Catalog introduz vários novos objetos protegíveis para conceder privilégios aos dados no armazenamento de objetos na nuvem.
-
Um objeto Unity Catalog usado para abstrair credenciais de longo prazo de provedores de armazenamento em nuvem.
-
Um objeto Unity Catalog usado para associar um URI de armazenamento de objeto em nuvem a uma credencial de armazenamento.
-
Uma tabela do Catálogo Unity criada em um local externo gerenciado pelo Catálogo Unity.
Credencial de armazenamento
Uma credencial de armazenamento é um objeto protegível que representa uma identidade gerenciada do Azure ou uma entidade de serviço do Microsoft Entra ID.
Depois que uma credencial de armazenamento é criada, o acesso a ela pode ser concedido a entidades de segurança (usuários e grupos).
As credenciais de armazenamento são usadas principalmente para criar locais externos, que abrangem o acesso a um caminho de armazenamento específico.
Os nomes das credenciais de armazenamento não são qualificados e devem ser exclusivos dentro do metastore.
Representação gráfica de relações
O diagrama a seguir descreve a relação entre:
- Credenciais de armazenamento
- Localizações externas
- Tabelas externas
- caminhos de armazenamento
- Entidades do IAM
- Contas de serviço do Azure
Exemplos
Usando a CLI, crie uma credencial my_azure_storage_cred
de armazenamento para uma entidade de serviço do Microsoft Entra ID.
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"}}'
O restante dos comandos pode ser executado dentro do 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';