Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Os papéis Postgres controlam o acesso às suas bases de dados, esquemas, tabelas e outros objetos de base de dados Postgres. Use a interface do Lakebase para criar e gerir funções para a sua equipa.
Observação
Antes de trabalhar com funções, veja como se ligar à sua base de dados e autenticar usando tokens OAuth ou autenticação nativa por palavra-passe Postgres.
Visão geral da função
Quando crias um projeto, um papel Postgres é criado automaticamente para a tua identidade Databricks (por exemplo, user@databricks.com). Este papel detém a base de dados padrão databricks_postgres e é membro de databricks_superuser, conferindo-lhe amplos privilégios para gerir objetos da base de dados. Pode criar funções adicionais no ramo padrão do seu projeto ou em ramos filhos.
Se gerir o seu projeto com Terraform e quiser colocar esta função implícita de proprietário sob gestão de IaC, consulte Configuração típica de projetos Lakebase com Terraform para conhecer o replace_existing padrão de adoção.
Se usar Pacotes de Automação Declarativa em vez disso, veja Configuração típica de projetos Lakebase com Pacotes de Automação Declarativa para o mesmo padrão.
Observação
O estado da função do Postgres é independente entre ramificações. Quando cria um ramo, este reflete as funções do Postgres, as bases de dados, as associações entre funções e os privilégios do ramo principal no momento em que o ramo é criado. Após a ramificação, cada ramificação evolui de forma independente — as funções e as bases de dados criadas, os GRANTs e REVOKEs aplicados e os atributos ou associações de funções modificados numa ramificação não têm efeito em qualquer outra ramificação, incluindo a ramificação principal. Não existe sincronização automática do estado da função entre ramificações.
Permissões do projeto (PODE USAR, PODE GERIR) funcionam de forma diferente: aplicam-se a todo o projeto e a todas as suas ramificações. Veja Gerir permissões de projeto.
Criar um papel
Use a caixa de diálogo Adicionar função da aplicação Lakebase para criar uma função OAuth para uma identidade Databricks ou uma função de palavra-passe nativa do Postgres.
Criar uma função OAuth
Os papéis OAuth estão ligados a uma identidade Azure Databricks (utilizador, principal de serviço ou grupo) e autenticam-se usando tokens OAuth, que expiram após uma hora.
Quando cria um ramo filho, ele reflete o papel do pai e o estado da base de dados no momento da ramificação. Depois disso, o estado de papel de cada ramo evolui de forma independente. Para grupos, apenas são suportados grupos ao nível do espaço de trabalho.
Opcionalmente, conceder databricks_superuser (herda pg_read_all_data, pg_write_all_data, e pg_monitor) ou atributos padrão de Postgres (CREATEDB, CREATEROLE, BYPASSRLS).
Veja atributos de Função na documentação PostgreSQL.
Para criar um papel OAuth, abra o projeto e selecione Visão Geral na barra lateral. Selecione o separador Papéis e Bases de Dados, clique em Adicionar papel, selecione o separador OAuth, selecione uma identidade na lista pendente Principal, configure as permissões e clique em Adicionar.
Observação
Também podes criar funções OAuth usando a databricks_auth extensão com SQL ou a API REST. Ver Criar funções de Postgres.
Criar uma função de palavra-passe
As funções de palavra-passe usam uma palavra-passe Postgres estática e não estão associadas a uma identidade do Azure Databricks. São úteis para aplicações ou ferramentas que requerem credenciais tradicionais de base de dados.
A aplicação Lakebase gera automaticamente uma palavra-passe segura. Copie-o imediatamente após a criação — não volta a ser mostrado. Se precisares de uma palavra-passe personalizada, define mais tarde usando SQL. As mesmas permissões opcionais do papel OAuth aplicam-se (databricks_superuser, CREATEDB, CREATEROLE, BYPASSRLS). Os nomes das funções devem ser identificadores Postgres válidos e não podem exceder 63 caracteres.
Para criar uma função de senha, navegue até
Ver funções
Para ver todos os papéis numa filial, navegue até ao separador Papéis & Bases de Dados da sua filial na aplicação Lakebase.
Gerir ligações por palavra-passe
As ligações por palavra-passe estão desativadas por defeito para novos projetos Lakebase. Os projetos existentes não são afetados por esta predefinição.
Para ativar conexões por palavra-passe, navegue até às definições do seu projeto Definições>Conexões da base de dados e assinale Palavra-passe (roles nativos do Postgres).
Para desativar as ligações com palavra-passe, navegue até Definições>Ligações à base de dados do seu projeto e desmarque Palavra-passe (funções nativas do Postgres). As funções com palavra-passe existentes não são eliminadas, mas não se podem autenticar enquanto as ligações por palavra-passe estiverem desativadas.
Também podes controlar isto por endpoint de computação. Nas definições de computação da sua filial, selecione Editar>ligações à base de dados e verifique ou desmarque Palavra-passe (funções Postgres).
Importante
Isto é uma mudança de comportamento. Se tiver scripts de automação ou pipelines de CI que criam novos projetos Lakebase e dependem de ligações nativas por palavra-passe do Postgres, tem agora de ativar explicitamente as ligações por palavra-passe após a criação do projeto.
Para ativar ou desativar as ligações por palavra-passe de forma programática:
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}}'
Python SDK
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, veja Sobre autenticação.
Redefinir uma palavra-passe
Pode redefinir a palavra-passe para as funções nativas do Postgres. As funções OAuth utilizam tokens OAuth para autenticação e não têm palavras-passe para repor.
Para redefinir a palavra-passe de uma função:
- Navegue até ao separador Roles & Databases da sua agência na aplicação Lakebase.
- Selecione Redefinir palavra-passe no menu de função e clique em Reiniciar.
- Copia a nova palavra-passe gerada.
Observação
Redefinir uma palavra-passe na aplicação Lakebase repõe a palavra-passe para um valor gerado com entropia de 60 bits. Para definir o valor da sua própria palavra-passe, pode redefinir a palavra-passe usando o editor SQL ou um cliente SQL como o psql com a seguinte sintaxe:
ALTER USER user_name WITH PASSWORD 'new_password';
A palavra-passe deve ter pelo menos 12 caracteres com uma mistura de minúsculas, maiúsculas, números e símbolos. As palavras-passe definidas pelo utilizador são validadas no momento da criação para garantir entropia de 60 bits.
Obtenha um novo token OAuth
Se estiver a usar autenticação OAuth e precisar de um novo token OAuth (os tokens expiram após uma hora), pode obter um no modal Connect:
- Navegue até ao seu projeto na aplicação Lakebase.
- Clique em Ligar para abrir o modal de ligação à base de dados.
- Seleciona a tua função OAuth na lista suspensa de Funções.
- Clica em Copiar Token OAuth para copiar um novo token.
Saiba mais: Conecte-se a uma função OAuth | Sobre autenticação OAuth
Eliminar um papel
Importante
Eliminar um papel é uma ação permanente que não pode ser desfeita, e não podes eliminar um papel que possui uma base de dados. A base de dados deve ser eliminada antes de eliminar a função que a detém.
Para eliminar uma função:
- Navegue até ao separador Roles & Databases da sua agência na aplicação Lakebase.
- Selecione Eliminar função no menu de funções e confirme a eliminação.
Observação
Gerir funções em bases de dados requer a permissãode projeto PODE GERIR ou PODE USAR. Se não tiver a permissão necessária, verá uma mensagem "Permissões necessárias" ao tentar uma ação relacionada com o papel. Contacte um administrador do espaço de trabalho para solicitar acesso. Para mais informações, consulte Gerir permissões de projeto.