Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
As funções postgres controlam o acesso aos bancos de dados, esquemas, tabelas e outros objetos de banco de dados do Postgres. Use a interface do usuário do Lakebase para criar e gerenciar funções para sua equipe.
Observação
Antes de trabalhar com funções, veja como se conectar ao banco de dados e autenticar usando tokens OAuth ou autenticação de senha nativa do Postgres.
Visão geral da função
Quando você cria um projeto, uma função postgres é criada automaticamente para sua identidade do Databricks (por exemplo, user@databricks.com). Essa função é proprietária do banco de dados padrão databricks_postgres e é membro de databricks_superuser, o que lhe confere privilégios amplos para gerenciar objetos de banco de dados. Você pode criar papéis adicionais na ramificação padrão do projeto ou em ramificações filhas.
Se você gerenciar seu projeto com o Terraform e quiser colocar essa função de proprietário implícita no gerenciamento de IaC, consulte Configuração de projeto típico do Lakebase com o Terraform para o padrão de adoção replace_existing.
Se você usar Pacotes de Automação Declarativa em vez disso, consulte a configuração de projeto típico do Lakebase com Pacotes de Automação Declarativa para o mesmo padrão.
Observação
O estado da função Postgres é independente entre ramificações. Quando você cria uma ramificação, ela reflete as funções do Postgres, os bancos de dados, as associações entre funções e os privilégios concedidos da ramificação pai no momento da ramificação. Após a ramificação, cada ramificação evolui de forma independente — funções e bancos de dados criados, GRANTs e REVOKEs aplicados, e atributos ou associações de função modificados em uma ramificação não têm efeito algum sobre nenhuma outra ramificação, incluindo a ramificação pai. Não há sincronização automática do estado da função entre branches.
As permissões de projeto (CAN USE, CAN MANAGE) funcionam de forma diferente: elas se aplicam ao projeto inteiro e a todas as suas ramificações. Consulte Gerenciar permissões de projeto.
Criar uma função
Use a caixa de diálogo Adicionar função no Aplicativo Lakebase para criar uma função OAuth para uma identidade do Databricks ou uma função de senha nativa do Postgres.
Criar uma função OAuth
As funções OAuth são vinculadas a uma identidade do Azure Databricks (usuário, entidade de serviço ou grupo) e são autenticadas usando tokens OAuth, que expiram após uma hora.
Quando você cria uma ramificação filha, ela reflete a função da ramificação pai e o estado do banco de dados no momento da ramificação. Depois disso, o estado de função de cada ramificação evolui de forma independente. Para grupos, há suporte apenas para grupos no nível do workspace.
Opcionalmente, conceda databricks_superuser (herda pg_read_all_data, pg_write_all_datae pg_monitor) ou atributos postgres padrão (CREATEDB, CREATEROLE, ). BYPASSRLS Consulte atributos de função na documentação do PostgreSQL.
Para criar um papel OAuth, abra o projeto e selecione Visão Geral na barra lateral. Selecione a aba Funções & Bancos de Dados, clique em Adicionar função, selecione a aba OAuth, selecione uma identidade no menu suspenso Principal, configure as permissões e clique em Adicionar.
Observação
Você também pode criar funções OAuth usando a databricks_auth extensão com SQL ou a API REST. Consulte Criar funções do Postgres.
Criar uma função de senha
As funções de senha usam uma senha estática do Postgres e não estão vinculadas a uma identidade do Azure Databricks. Eles são úteis para aplicativos ou ferramentas que exigem credenciais de banco de dados tradicionais.
O Aplicativo Lakebase gera uma senha segura automaticamente. Copie-o imediatamente após a criação – ele não será mostrado novamente. Se você precisar de uma senha personalizada, defina-a posteriormente usando SQL. As mesmas permissões opcionais da função OAuth se aplicam (databricks_superuser, , CREATEDB, CREATEROLE). BYPASSRLS Os nomes de função devem ser identificadores postgres válidos e não podem exceder 63 caracteres.
Para criar uma função de senha, navegue até Funções & Bancos de Dados, clique na guia >, selecione a aba , insira um nome de função, configure as permissões, clique em > e copie a senha gerada.
Exibir funções
Para exibir todas as funções em um branch, navegue até a guia Funções & Bancos de Dados do branch no Aplicativo Lakebase.
Gerenciar conexões de senha
As conexões por senha são desativadas por padrão para novos projetos Lakebase. Os projetos existentes não são afetados por essa configuração padrão.
Para habilitar conexões por senha, navegue até Configurações>Conexões de banco de dados do seu projeto e marque Senha (roles nativas do Postgres).
Para desabilitar conexões por senha, navegue até Configurações>Conexões do banco de dados do seu projeto e desmarque Senha (funções nativas do Postgres). As funções de senha existentes não são excluídas, mas não podem ser autenticadas enquanto as conexões de senha estão desabilitadas.
Você também pode controlar isso por endpoint de computação. Nas configurações de computação da branch, selecione Editar>Conexões de banco de dados e marque ou desmarque Senha (funções do Postgres).
Importante
Essa é uma alteração de comportamento. Se você possui scripts de automação ou pipelines de CI que criam novos projetos Lakebase e dependem de conexões nativas de senha Postgres, agora é necessário habilitar explicitamente conexões de senha após a criação do projeto.
Para habilitar ou desabilitar conexões de senha programaticamente:
CLI
# Enable password connections
databricks postgres update-project projects/<project-id> spec.enable_pg_native_login \
--json '{"spec": {"enable_pg_native_login": true}}'
# Disable password connections
databricks postgres update-project projects/<project-id> spec.enable_pg_native_login \
--json '{"spec": {"enable_pg_native_login": false}}'
SDK do Python
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.postgres import FieldMask, Project, ProjectSpec
w = WorkspaceClient()
# Enable password connections
w.postgres.update_project(
name="projects/<project-id>",
project=Project(spec=ProjectSpec(enable_pg_native_login=True)),
update_mask=FieldMask(field_mask=["spec.enable_pg_native_login"]),
).wait()
# Disable password connections
w.postgres.update_project(
name="projects/<project-id>",
project=Project(spec=ProjectSpec(enable_pg_native_login=False)),
update_mask=FieldMask(field_mask=["spec.enable_pg_native_login"]),
).wait()
curl
# Enable password connections
curl -X PATCH "https://${DATABRICKS_HOST}/api/2.0/postgres/projects/<project-id>?update_mask=spec.enable_pg_native_login" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"spec": {"enable_pg_native_login": true}}' | jq
# Disable password connections
curl -X PATCH "https://${DATABRICKS_HOST}/api/2.0/postgres/projects/<project-id>?update_mask=spec.enable_pg_native_login" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"spec": {"enable_pg_native_login": false}}' | jq
Para autenticação, consulte Sobre autenticação.
Redefinir uma senha
Você pode redefinir a senha para funções de senha nativas do Postgres. As funções OAuth usam tokens OAuth para autenticação e não têm senhas para redefinir.
Para redefinir a senha de uma função:
- Navegue até a guia Funções & Bancos de Dados da sua filial no Lakebase.
- Selecione Redefinir senha no menu de função e clique em Redefinir.
- Copie a nova senha gerada.
Observação
Redefinir uma senha no Aplicativo Lakebase redefine a senha para um valor gerado com entropia de 60 bits. Para definir seu próprio valor de senha, você pode redefinir a senha usando o editor do SQL ou um cliente SQL, como o psql, com a seguinte sintaxe:
ALTER USER user_name WITH PASSWORD 'new_password';
A senha deve ter pelo menos 12 caracteres com uma combinação de caracteres minúsculos, maiúsculos, números e símbolos. As senhas definidas pelo usuário são validadas no momento da criação para garantir a entropia de 60 bits.
Obter um novo token OAuth
Se você estiver usando a autenticação OAuth e precisar de um novo token OAuth (os tokens expiram após uma hora), você poderá obter um do modal connect:
- Navegue até seu projeto no Aplicativo Lakebase.
- Clique em Conectar para abrir o modal de conexão de banco de dados.
- Selecione seu Role OAuth na lista suspensa Roles.
- Clique em Copiar Token OAuth para copiar um novo token.
Saiba mais: Conectar-se a uma função OAuth | Sobre autenticação
Excluir uma função
Importante
Excluir uma função é uma ação permanente que não pode ser desfeita e você não pode excluir uma função que possui um banco de dados. O banco de dados deve ser excluído antes de excluir a função que possui o banco de dados.
Para excluir uma função:
- Navegue até a guia Funções & Bancos de Dados da sua filial no Lakebase.
- Selecione Excluir função no menu de função e confirme a exclusão.
Observação
O gerenciamento de funções de banco de dados requer a permissão de projetoCAN MANAGE ou CAN USE. Se você não tiver a permissão necessária, verá uma mensagem "Permissões necessárias" ao tentar uma ação relacionada à função. Entre em contato com um administrador do workspace para solicitar acesso. Para obter mais informações, consulte Gerenciar permissões de projeto.