Compartilhar via


Adicionar um recurso de tabela do Catálogo do Unity a um aplicativo do Databricks

Adicione tabelas do Catálogo do Unity como recursos do Databricks Apps para que seu aplicativo possa consultar e modificar dados armazenados no Catálogo do Unity com controle de governança e acesso. As tabelas do Catálogo do Unity fornecem armazenamento de dados estruturados com permissões refinadas, para que seu aplicativo possa ler e gravar dados com segurança sem credenciais de codificação.

Requisitos de privilégio

Para acessar uma tabela do Catálogo do Unity, a entidade de serviço do aplicativo deve ter privilégio USE CATALOG no catálogo pai, privilégio USE SCHEMA no esquema pai e privilégio SELECT ou privilégio MODIFY na tabela. Quando você adiciona o recurso de tabela, o Azure Databricks concede automaticamente esses privilégios ao principal de serviço do aplicativo.

Para que essa concessão automática seja bem-sucedida, um dos seguintes deve ser verdadeiro para cada privilégio:

  • Para USE CATALOG: ou todos os usuários da conta têm o USE CATALOG privilégio no catálogo, ou você tem o MANAGE privilégio no catálogo.
  • Para USE SCHEMA: Ou todos os usuários da conta possuem o privilégio USE SCHEMA no esquema, ou você possui o privilégio MANAGE no esquema.
  • Para SELECT ou MODIFY: todos os usuários da conta têm o privilégio SELECT ou MODIFY na tabela, ou você tem o privilégio MANAGE na tabela.

Confira Privilégios e objetos protegíveis do Catálogo do Unity.

Adicionar um recurso de tabela do Catálogo do Unity

Antes de adicionar uma tabela como um recurso, examine os pré-requisitos do recurso de aplicativo.

  1. Ao criar ou editar um aplicativo, navegue até a etapa Configurar.
  2. Na seção Recursos do aplicativo, clique em + Adicionar recurso.
  3. Selecione a tabela UC como o tipo de recurso.
  4. Escolha uma tabela do Catálogo do Unity nas tabelas disponíveis em seu espaço de trabalho. A tabela já deve existir no Catálogo do Unity.
  5. Selecione o nível de permissão apropriado para seu aplicativo:
    • Selecione: Concede permissão ao aplicativo para consultar e ler dados da tabela. Isso é apropriado para aplicativos que só precisam ler dados.
    • Modificar: Concede ao aplicativo permissão para inserir, atualizar e excluir dados na tabela. Essa permissão inclui SELECTimplicitamente, para que o aplicativo também possa ler dados.
  6. (Opcional) Especifique uma chave de recurso personalizada, que é como você faz referência à tabela na configuração do aplicativo. A chave padrão é table.

Observação

MODIFY não está disponível para todos os tipos de tabela. Por exemplo, visualizações não suportam o privilégio MODIFY. Se a tabela não der suporte MODIFY, só SELECT estará disponível.

Variáveis de ambiente

Quando você implanta um aplicativo com um recurso de tabela do Catálogo do Unity, o Azure Databricks expõe o nome completo de três níveis da tabela por meio de variáveis de ambiente que você pode referenciar usando o valueFrom campo.

Configuração de exemplo:

env:
  - name: UC_TABLE_NAME
    valueFrom: table # Use your custom resource key if different

Usando a tabela em seu aplicativo:

import os
from databricks.sdk import WorkspaceClient

# Access the table name
table_name = os.getenv("UC_TABLE_NAME")

# Initialize workspace client
w = WorkspaceClient()

# Query the table using a SQL warehouse resource
result = w.statement_execution.execute_statement(
    warehouse_id=os.getenv("DATABRICKS_WAREHOUSE_ID"),  # Requires a SQL warehouse resource
    statement=f"SELECT * FROM {table_name} LIMIT 10"
)

Para obter mais informações, consulte Usar variáveis de ambiente para acessar recursos.

Remover um recurso de tabela do Catálogo do Unity

Quando você remove um recurso de tabela do Catálogo do Unity de um aplicativo, a entidade de serviço do aplicativo perde as SELECT, MODIFY, e ALL PRIVILEGES permissões na tabela. O Azure Databricks também tenta revogar permissões hierárquicas de catálogo e esquema. A tabela em si permanece inalterada e continua disponível para outros usuários e aplicativos que têm permissões apropriadas.

Práticas recomendadas

Considere o seguinte quando você trabalha com recursos de tabela do Catálogo do Unity:

  • Conceda permissões mínimas. Use SELECT a menos que seu aplicativo precise gravar dados na tabela.
  • Combine recursos de tabela com um recurso do SQL Warehouse quando seu aplicativo precisar executar consultas SQL na tabela.
  • Use recursos de tabela separados para tabelas diferentes em vez de conceder acesso amplo no nível do esquema, para que você possa aplicar o princípio de privilégios mínimos.
  • Considere usar volumes do Catálogo do Unity para dados não estruturados e tabelas do Catálogo do Unity para dados estruturados.