Adicionar um recurso de tabela do Unity Catalog a um aplicativo Databricks
Adicione tabelasUnity Catalog como recursos Databricks Apps para que seu aplicativo possa consultar e modificar dados armazenados no Unity Catalog com governança e controle de acesso. As tabelas do Unity Catalog oferecem armazenamento de dados estruturado com permissões detalhadas, permitindo que seu aplicativo leia e grave dados com segurança sem a necessidade de codificar credenciais diretamente no código.
Requisitos de privilégio
Para acessar uma tabela Unity Catalog , a entidade de serviço do aplicativo deve ter o privilégio USE CATALOG no catálogo pai, o privilégio USE SCHEMA no esquema pai e o privilégio SELECT ou MODIFY na tabela. Ao adicionar o recurso de tabela, o Databricks concede automaticamente esses privilégios à entidade de serviço do aplicativo.
Para que essa concessão automática seja bem-sucedida, uma das seguintes condições deve ser verdadeira para cada privilégio:
- Para
USE CATALOG: Ou todos os usuários account têm o privilégioUSE CATALOGno catálogo, ou você tem o privilégioMANAGEno catálogo. - Para
USE SCHEMA: Ou todos os usuários account têm o privilégioUSE SCHEMAno esquema, ou você tem o privilégioMANAGEno esquema. - Para
SELECTouMODIFY: Ou todos os usuários account têm o privilégioSELECTouMODIFYna tabela, ou você tem o privilégioMANAGEna tabela.
Consulte PrivilégiosUnity Catalog e objetos protegíveis.
Adicionar um recurso de tabela Unity Catalog
Antes de adicionar uma tabela como recurso, revise os pré-requisitos do recurso do aplicativo.
-
Ao criar ou editar um aplicativo, navegue até Configurar o passo.
-
Na seção Recurso do aplicativo , clique em + Adicionar recurso .
-
Selecione a tabela UC como o tipo de recurso.
-
Escolha uma tabela Unity Catalog dentre as tabelas disponíveis em seu workspace. A tabela já deve existir no Unity Catalog.
-
Selecione o nível de permissão apropriado para seu aplicativo:
- Selecionar: Concede permissão ao aplicativo para consultar e ler dados da tabela. Isso é adequado para aplicativos que precisam apenas ler dados.
- Modificar: Concede ao aplicativo permissão para inserir, atualizar e excluir dados na tabela. Esta permissão inclui implicitamente
SELECT, portanto o aplicativo também pode ler dados.
-
(Opcional) Especifique uma key de recurso personalizada, que é como você referencia a tabela na configuração do seu aplicativo. A key default é
table.
MODIFY Não está disponível para todos os tipos de tabela. Por exemplo, as visualizações não suportam o privilégio MODIFY . Se a tabela não suportar MODIFY, apenas SELECT estará disponível.
variável de ambiente
Quando você implanta um aplicativo com um recurso de tabela Unity Catalog , Databricks expõe o nome completo de três níveis da tabela por meio de uma variável de ambiente que você pode referenciar usando o campo valueFrom .
Configuração de exemplo:
env:
- name: UC_TABLE_NAME
valueFrom: table # Use your custom resource key if different
Utilizando a tabela em sua aplicação:
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 mais informações, veja Usar variável de ambiente para acessar recurso.
Remover um recurso de tabela Unity Catalog
Quando você remove um recurso de tabela Unity Catalog de um aplicativo, a entidade de serviço do aplicativo perde as concessões SELECT, MODIFY e ALL PRIVILEGES na tabela. O 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 possuam as permissões adequadas.
Melhores práticas
Ao trabalhar com recursos de tabela Unity Catalog , leve em consideração o seguinte:
- Conceda as permissões mínimas. Use
SELECTa menos que seu aplicativo precise gravar dados na tabela. - Combine um recurso de tabela com um recursoSQL warehouse quando seu aplicativo precisar executar consultas SQL na tabela.
- Utilize recursos de tabela separados para tabelas diferentes em vez de conceder acesso amplo em nível de esquema, para que você possa aplicar o princípio do menor privilégio.
- Considere usar volumes do Unity Catalog para dados não estruturados e tabelas do Unity Catalog para dados estruturados.