Compartilhar via


Credenciais de armazenamento

Aplica-se a: verificação marcada como sim SQL do Databricks verificação marcada como sim Runtime do Databricks marca de seleção positiva Somente Catálogo do Unity

O Catálogo do Unity e o metastore Hive do Azure Databricks incorporado usam locais padrões para tabelas gerenciadas. O Catálogo do Unity apresenta 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 seguro que representa uma identidade gerenciada do Azure ou uma entidade de serviço do Microsoft Entra ID.

Após uma credencial de armazenamento ser 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 definem o escopo do acesso a um caminho de armazenamento específico.

Nomes de credenciais de armazenamento não são qualificados e devem ser exclusivos no metastore.

Representação gráfica de relacionamentos

O diagrama a seguir mostra o relacionamento entre:

  • credenciais de armazenamento
  • locais externos
  • tabelas externas
  • caminhos de armazenamento
  • entidades IAM
  • contas de serviço do Azure

Diagrama de ER de um local externo

Exemplos

Usando a CLI, crie uma credencial de armazenamento my_azure_storage_cred 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 no 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';