Partilhar via


Habilitar o acesso a dados externos ao Catálogo Unity

Importante

Este recurso está no Public Preview.

O Azure Databricks fornece acesso às tabelas do Catálogo Unity usando a API REST Unity e o catálogo REST do Apache Iceberg.

Um administrador de metastore deve habilitar o acesso a dados externos para cada metastore que você precisa acessar externamente. O utilizador ou principal de serviço que configura a ligação deve ter o privilégio EXTERNAL USE SCHEMA para cada esquema onde necessitam executar operações suportadas: leitura de tabelas geridas ou criação, leitura e escrita em tabelas externas.

A API REST Unity suporta leituras diretas para tabelas Delta. O catálogo REST do Iceberg suporta leituras para tabelas Delta e leituras e gravações para tabelas Iceberg. Consulte aceder aos dados do Databricks usando sistemas externos.

Habilitar o acesso a dados externos no metastore

Para permitir que mecanismos externos acessem dados em um metastore, um administrador de metastore deve habilitar o acesso a dados externos para o metastore. Esta opção está desativada por padrão para impedir o acesso externo não autorizado.

Para habilitar o acesso a dados externos, faça o seguinte:

  1. Em um espaço de trabalho do Azure Databricks anexado ao metastore, clique no ícone Dados.Catálogo.
  2. Clique no ícone de engrenagem na parte superior do painel Catálogo e selecione Metastore.
  3. Na guia Detalhes , ative o acesso de dados externos .

Observação

Essas opções são exibidas apenas para usuários suficientemente privilegiados. Se não visualizar estas opções, não terá permissões para ativar o acesso a dados externos para um metastore.

Conceder privilégios principais ao Catálogo Unity

Os clientes externos que ligam ao Azure Databricks precisam de autorização de uma entidade com privilégios suficientes.

O Azure Databricks dá suporte a OAuth e tokens de acesso pessoal (PAT) para autenticação. Consulte Autorizar o acesso aos recursos do Azure Databricks.

O responsável que solicita a credencial temporária deve ter:

  • O EXTERNAL USE SCHEMA privilégio no esquema que contém ou no seu catálogo pai.

    Este privilégio deve ser sempre concedido explicitamente. Somente o proprietário do catálogo principal pode concedê-lo. Para evitar a exfiltração acidental, ALL PRIVILEGES não inclui o privilégio EXTERNAL USE SCHEMA e os proprietários do esquema não têm esse privilégio por padrão.

  • SELECT permissão na tabela, USE CATALOG em seu catálogo pai e USE SCHEMA em seu esquema pai.

  • Ao criar tabelas externas, o principal também deve ter o CREATE TABLE privilégio no esquema e os privilégios CREATE EXTERNAL TABLE e EXTERNAL USE LOCATION no local externo de destino.

    EXTERNAL USE LOCATION deve ser sempre concedida explicitamente. Somente usuários com o MANAGE privilégio no local externo podem concedê-lo. Para evitar a exfiltração de dados acidental, ALL PRIVILEGES não inclui o privilégio e, por padrão, os EXTERNAL USE LOCATION proprietários de locais não dispõem desse privilégio.

A sintaxe de exemplo a seguir demonstra a concessão de EXTERNAL USE SCHEMA a um usuário:

GRANT EXTERNAL USE SCHEMA ON SCHEMA catalog_name.schema_name TO `user@company.com`

A sintaxe de exemplo a seguir demonstra a concessão de EXTERNAL USE LOCATION a um usuário:

GRANT EXTERNAL USE LOCATION ON EXTERNAL LOCATION external_location_name TO `user@company.com`

Supondo que o usuário tenha as permissões para ler todas as tabelas desejadas no esquema, nenhuma permissão adicional é necessária. Se você precisar conceder permissões adicionais para ler tabelas, consulte privilégios do Catálogo Unity e objetos protegíveis.