Pular para o conteúdo principal

Autenticar em uma instância de banco de dados

info

Visualização

Esse recurso está em Public Preview nas seguintes regiões: us-east-1, us-west-2, eu-west-1, ap-southeast-1, ap-southeast-2, eu-central-1, us-east-2, ap-south-1.

O Lakebase (Prévia Pública) é a versão atual pronta para produção. Para obter os recursos mais recentes, incluindo ramificação de banco de dados, escalonamento automático e escalonamento para zero, experimente o Lakebase Postgres (Beta), disponível apenas para avaliação. Consulte a seção "Como escolher entre as versões" para entender qual versão é a mais adequada para você.

Esta página descreve como se autenticar em uma instância do banco de dados Lakebase. Há duas maneiras de se autenticar:

  1. Obter tokens OAuth e autenticar usando identidades Databricks.
  2. Use funções nativas do Postgres com senhas.

Autenticar com as identidades da Databricks

Ao se autenticar como uma identidade Databricks, o senhor precisa gerar um token OAuth e usá-lo como senha ao se conectar ao Postgres.

Considerações antes de começar

  • Os tokens OAuth expiram após uma hora, mas a expiração é aplicada somente no login. As conexões abertas permanecem ativas mesmo que os tokens expirem. No entanto, qualquer comando PostgreSQL que exija autenticação falhará se os tokens tiverem expirado.

  • OAuth tokens usados para autenticação do Postgres são workspace-scoped e devem pertencer ao mesmo workspace que possui a instância do banco de dados. Não há suporte para autenticação de tokens entreworkspace. Para saber mais sobre autenticação, consulte Autenticação para a CLI da Databricks.

  • A autenticação baseada em tokens exige uma senha de texto simples, portanto, somente conexões SSL são permitidas. Certifique-se de que a biblioteca cliente que o senhor usa para acessar o Postgres com autenticação baseada em tokens esteja configurada para estabelecer uma conexão SSL.

Obter um OAuth tokens em um fluxo de usuário para máquina

Se o senhor for proprietário ou administrador do banco de dados ou se sua identidade Databricks tiver uma função Postgres correspondente para a instância do banco de dados, poderá obter um token OAuth na interface do usuário, no Databricks CLI ou em um dos SDKs Databricks. O senhor pode restringir o escopo dos tokens adequadamente usando o Databricks CLI.

Para outros usuários de identidade Databricks, consulte Autorizar o acesso do usuário a Databricks com OAuth para obter as instruções de autorização no nível workspacepara obter OAuth tokens.

Quando o status da instância do banco de dados for Disponível , use a interface do usuário Databricks para obter um token OAuth:

  1. Clique em "Compute" na barra lateral workspace e clique na tab "Lakebase Postgres" .
  2. Localize e clique no nome da instância do banco de dados para a qual deseja obter um token OAuth .
  3. Clique na tab Detalhes da conexão .
  4. Clique em Obter tokens OAuth . Um indicador sinaliza quando os tokens foram criados.
  5. Clique em Copiar OAuthToken para copiar os tokens para a sua área de transferência.

Obter um OAuth tokens em um fluxo máquina a máquina

Para permitir o acesso seguro e automatizado (máquina a máquina) à instância do banco de dados, o senhor deve obter tokens OAuth usando uma entidade de serviço Databricks. Esse processo envolve a configuração da entidade de serviço, a geração de credenciais e a criação de tokens OAuth para autenticação.

  1. Configurar uma entidade de serviço com credenciais de duração indefinida. Para obter instruções, consulte Autorizar o acesso da entidade de serviço ao Databricks com OAuth.
  2. Mint new OAuth tokens como a entidade de serviço.

Quando o status da instância do banco de dados for Disponível , use o Databricks CLI v0.256.0 e posterior para obter tokens OAuth:

  1. Use o comando a seguir para buscar tokens.

    Bash
      databricks database generate-database-credential \
    --request-id $(uuidgen) \
    --json '{
    "instance_names": ["db-instance-name"]
    }'
  2. Isso gera uma resposta no formato a seguir. Copie o token da resposta.

    JSON
    {
    "expiration_time": "2025-08-24T14:15:22Z",
    "token": "<string>"
    }
nota

Gire os tokens OAuth antes da expiração por hora:

  • Verifique o tempo de expiração dos tokens OAuth em cada uso e refresh quando necessário.
  • Como alternativa, configure um thread em segundo plano para refresh os tokens OAuth atuais periodicamente.

Solucionar problemas de identidade de tokens

Se a identidade dos seus tokens não corresponder ao rótulo de segurança, você poderá receber uma mensagem de erro como a seguinte.

A valid oauth token was supplied but the token's identity "<USER>" did not match the security label configured for role "<SERVICE PRINCIPAL>". Please ensure that the token is generated for the correct databricks identity.

execute o seguinte comando para verificar qual identidade Databricks é retornada:

Bash
databricks current-user me

Se a identidade esperada não for retornada, verifique se as credenciais corretas foram usadas ao inicializar o cliente workspace .

Autenticar como grupo Databricks

Os grupos e as associações de grupos não são sincronizados do Databricks para o Postgres, nem as permissões do Unity Catalog. No entanto, depois que um grupo Databricks é adicionado ao Postgres, qualquer usuário Databricks do grupo pode log in como o grupo usando a senha do usuário. Isso permite que o senhor gerencie as permissões no nível do grupo no Postgres. Qualquer membro direto ou indireto (usuário ou entidade de serviço) da identidade do grupo Databricks pode se autenticar no Postgres e no log in como a função Postgres do grupo Databricks.

Ao autenticar como uma identidade de grupo usando tokens de usuário ou entidade de serviço, a associação ao grupo é validada somente no momento da autenticação. Qualquer conexão aberta com tokens de um membro do grupo permanece aberta se o membro for removido do grupo após a autenticação. Qualquer nova solicitação de conexão de um membro do grupo removido é rejeitada durante a autenticação.

Bash
export PGPASSWORD='<OAuth token of a group member>'
export GROUPROLENAME=<pg-case-sensitive-group-role-name>

psql -h $HOSTNAME -p 5432 -d databricks_postgres -U $GROUPROLENAME

Somente os grupos atribuídos a Databricks workspace da instância do banco de dados são compatíveis com o login do Postgres baseado em grupo. Para saber como atribuir um grupo a um workspace, consulte Atribuir um grupo a um workspace.

Autentique-se com funções e senhas do Postgres

Se você tiver clientes que não suportam rotação de credenciais após uma hora, você pode criar funções nativas do Postgres com senhas:

  1. Clique em Computação na barra lateral do workspace.

  2. Clique em Database instances (Instâncias de banco de dados ) tab.

  3. Selecione a instância do banco de dados que você deseja atualizar.

  4. Clique em Editar no canto superior direito.

  5. Ative a opção Ativar login da função nativa do Postgres .

  6. Clique em Salvar .

  7. Faça login no Postgres ou use o SQL Editor para criar uma função com uma senha.

    SQL
    CREATE ROLE new_role LOGIN PASSWORD 'your strong password';
  8. Conceda permissões adicionais do Postgres para a nova função. Consulte conceder privilégios às funções do Postgres usando o PostgreSQL.

Next os passos

Depois de obter uma credencial (tokensOAuth ou senha), o senhor pode se conectar à instância do banco de dados: