Share via


Credenciais de armazenamento

Aplica-se a:check marked yes Databricks SQL check marked yes Databricks Runtime check marked yes 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.

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

External location ER diagram

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