Habilitar o acesso a dados externos ao Catálogo do Unity
O Azure Databricks fornece acesso às tabelas do Catálogo do Unity usando a API REST do Unity e o catálogo REST do Iceberg.
Um administrador do metastore deve habilitar o acesso a dados externos para cada metastore que você precisa acessar externamente. O usuário ou a entidade de serviço que configura a conexão deve ter o privilégio EXTERNAL USE SCHEMA
para cada esquema que contém tabelas que você precisa ler externamente.
A API REST do Unity dá suporte a leituras diretas para tabelas Delta, enquanto o catálogo REST do Iceberg dá suporte a leituras em tabelas habilitadas para leituras de Iceberg. Consulte Acesse 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:
- Em um workspace do Azure Databricks anexado ao metastore, clique no ícone
Catálogo.
- Clique no ícone de engrenagem
na parte superior do painel catálogo e selecione Metastore.
- 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 uma entidade principal EXTERNAL USE SCHEMA
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 Autorizando 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 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ê-lo. Para evitar a exfiltração acidental,
ALL PRIVILEGES
não inclui o privilégioEXTERNAL USE SCHEMA
e os proprietários de esquema não têm esse privilégio por padrão.SELECT
permissão na tabela,USE CATALOG
no catálogo pai eUSE SCHEMA
no esquema pai.
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`
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 do Unity Catalog e objetos seguráveis.