Pular para o conteúdo principal

Autenticar em uma instância de banco de dados

info

Visualização

Este recurso está em pré-visualização pública 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.

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 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 requer 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 acesso de usuário a Databricks com OAuth para obter 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. Na página de detalhes da instância do banco de dados , clique em Get OAuth tokens . Um sinalizador indica quando os tokens foram criados.
  2. Clique em Copy OAuthToken para copiar os tokens para a área de transferência. O senhor deve substituir esse valor nas cadeias de conexão fornecidas na próxima etapa.
  3. Clique no ícone de cópia que segue as cadeias de conexão fornecidas.

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.

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 um usuário ou tokens de entidade de serviço, a associação ao grupo só é validada no momento da autenticação. Qualquer conexão aberta anteriormente com tokens de um membro do grupo não será fechada 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 será 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.

Próximos passos

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