Compartilhar via


Habilitar o acesso a dados externos ao Catálogo do Unity

Importante

Esse recurso está em Visualização Pública.

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

Um administrador do metastore deve habilitar o acesso a dados externos para cada metastore que você precisa acessar externamente. O usuário ou entidade de serviço que configura a conexão deve ter o EXTERNAL USE SCHEMA privilégio de cada esquema em que precisa executar operações com suporte: ler de tabelas gerenciadas ou criar, ler e gravar em tabelas externas.

A API REST do Unity dá suporte a leituras diretas para tabelas Delta. O catálogo REST do Iceberg dá suporte a leituras para tabelas Delta e leituras e gravações para tabelas Iceberg. Confira Acessar os 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 do metastore deve habilitar o acesso a dados externos para o metastore. Essa opção é desabilitada 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 workspace do Azure Databricks anexado ao metastore, clique no ícone Dados.Catálogo.
  2. Clique no ícone Engrenagem. Ícone de engrenagem na parte superior do painel Catálogo e selecione Metastore.
  3. Na guia Detalhes, habilite acesso a dados externos.

Observação

Essas opções são exibidas apenas para usuários com privilégios suficientes. Se você não vir essas opções, não terá permissões para ativar o acesso a dados externos para um metastore.

Conceder privilégios de catálogo principal do Unity

Os clientes externos que se conectam ao Azure Databricks precisam de autorização de um principal suficientemente privilegiado.

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

O principal que solicita a credencial temporária deve ter:

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

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

  • Permissão SELECT na tabela, USE CATALOG no catálogo pai e USE SCHEMA no esquema pai.

  • Se estiver criando tabelas externas, a entidade de segurança também deverá ter o CREATE TABLE privilégio no esquema e os CREATE EXTERNAL TABLE privilégios no EXTERNAL USE LOCATION local externo de destino.

    EXTERNAL USE LOCATION sempre deve ser concedido explicitamente. Somente usuários com o MANAGE privilégio no local externo podem concedê-lo. Para evitar a exfiltração acidental, ALL PRIVILEGES não inclui o EXTERNAL USE LOCATION privilégio e os proprietários de localização não têm esse privilégio por padrão.

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 permissões para ler todas as tabelas desejadas no esquema, nenhuma permissão adicional será necessária. Se você precisar conceder permissões adicionais para ler tabelas, consulte Privilégios e objetos seguráveis do Catálogo do Unity.