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.
Falha na autenticação de senha para o usuário
Este artigo ajuda você a resolver um problema que pode ocorrer ao se conectar ao Banco de Dados do Azure para PostgreSQL - Servidor Flexível.
Sintomas
Ao tentar se conectar ao Banco de Dados do Azure para PostgreSQL - Servidor Flexível, você pode encontrar a seguinte mensagem de erro:
psql: erro: conexão com o servidor em "<server-name.postgres.database.azure.com>" (x.x.x.x), porta 5432 falhou: FATAL: falha na autenticação de senha para o usuário "<user-name>"
Este erro indica que a senha fornecida para o usuário <user-name>
está incorreta.
Após o erro de autenticação de senha inicial, você pode ver outra mensagem de erro indicando que o cliente está tentando se reconectar ao servidor, desta vez sem criptografia SSL. A falha aqui é devido à configuração do pg_hba.conf
servidor não permitir conexões não criptografadas.
Falha na conexão com o servidor em "<server-name.postgres.database.azure.com>" (x.x.x.x), porta 5432: FATAL: nenhuma entrada pg_hba.conf para host "y.y.y.y", usuário "<user-name>", banco de dados "postgres", sem criptografia
Ao usar um libpq
cliente que suporta SSL, como ferramentas como psql
, pg_dump
ou pgbench
, é um comportamento padrão tentar se conectar uma vez com SSL e uma vez sem. A razão para essa abordagem é que o servidor pode ter regras diferentes pg_hba
para conexões SSL e não-SSL.
A mensagem de erro combinada que recebe neste cenário tem o seguinte aspeto:
psql: erro: conexão com o servidor em "<server-name.postgres.database.azure.com>" (x.x.x.x), porta 5432 falhou: FATAL: falha na autenticação de senha para conexão de "<nome> de usuário" do usuário com o servidor em "<server-name.postgres.database.azure.com>" (x.x.x.x), porta 5432 falhou: FATAL: nenhuma entrada pg_hba.conf para host "y.y.y.y", usuário "<user-name>", banco de dados "postgres", sem criptografia
Para evitar essa tentativa dupla e especificar o modo SSL desejado, use a opção de conexão na configuração do sslmode
cliente. Por exemplo, se você estiver usando libpq
variáveis no shell bash, poderá definir o modo SSL usando o seguinte comando:
export PGSSLMODE=require
Causa
O erro encontrado ao conectar-se ao Banco de Dados do Azure para PostgreSQL - Servidor Flexível decorre principalmente de problemas relacionados à autenticação de senha:
Senha incorreta A autenticação de senha falhou por erro do usuário
<user-name>
ocorre quando a senha do usuário está incorreta. Isso pode acontecer devido a uma senha digitada incorretamente, uma alteração recente de senha que não foi atualizada nas configurações de conexão ou outros problemas semelhantes.Usuário ou função criada sem senha Outra possível causa desse erro é a criação de um usuário ou função no PostgreSQL sem especificar uma senha. A execução de comandos como
CREATE USER <user-name>
ouCREATE ROLE <role-name>
sem uma instrução de senha que acompanha resulta em um usuário ou função sem senha definida. Tentar se conectar com esses tipos de usuários ou funções sem definir uma senha levará a uma falha de autenticação com erro de falha de autenticação de senha.Potencial violação de segurança Se a falha de autenticação for inesperada, especialmente se houver várias tentativas com falha registradas, isso pode indicar uma possível violação de segurança. Tentativas de acesso não autorizado podem desencadear tais erros.
Resolução
Se você estiver encontrando o erro "falha na autenticação de senha para o usuário <user-name>
", siga estas etapas para resolver o problema.
Tente conectar-se com uma ferramenta diferente
Se o erro vier de um aplicativo, tente se conectar ao banco de dados usando uma ferramenta diferente, como
psql
ou pgAdmin, com o mesmo nome de usuário e senha. Esta etapa ajuda a determinar se o problema é específico do cliente ou um problema de autenticação mais amplo. Lembre-se de quaisquer regras de firewall relevantes que possam afetar a conectividade. Para obter instruções sobre como se conectar usando ferramentas diferentes, consulte a folha "Conectar" no portal do Azure.Alterar a palavra-passe
Se você ainda encontrar problemas de autenticação de senha depois de tentar uma ferramenta diferente, considere alterar a senha do usuário. Para o usuário administrador, você pode alterar a senha diretamente no portal do Azure, conforme descrito neste link. Para outros usuários ou o usuário administrador sob determinadas condições, você pode alterar a senha na linha de comando. Verifique se você está conectado ao banco de dados como um usuário com o
CREATEROLE
atributo e aADMIN
opção em sua função. O comando para alterar a senha é:ALTER USER <user-name> PASSWORD '<new-password>';
Definir senha para usuário ou função criada sem uma
Se a causa do erro for a criação de um usuário ou função sem senha, faça login na sua instância do PostgreSQL e defina a senha para a função. Para funções criadas sem o
LOGIN
privilégio, certifique-se de conceder esse privilégio juntamente com a configuração da senha:ALTER ROLE <role-name> LOGIN; ALTER ROLE <role-name> PASSWORD '<new-password>';
Se suspeitar de uma potencial violação de segurança
Se suspeitar que uma potencial violação de segurança está a causar acesso não autorizado à sua Base de Dados do Azure para PostgreSQL - Servidor Flexível, siga estes passos para resolver o problema:
Ativar captura de log Se a captura de log ainda não estiver ativada, configure-a agora. Chave de captura de log para ficar de olho nas atividades do banco de dados e capturar quaisquer padrões de acesso estranhos. Há várias maneiras de fazer isso, incluindo o Azure Monitor Log Analytics e os logs do servidor, que ajudam a armazenar e analisar logs de eventos do banco de dados.
- Análise de Log, confira as instruções de configuração do Azure Monitor Log Analytics aqui: Configurar e acessar logs no Banco de Dados do Azure para PostgreSQL - Servidor Flexível.
- Logs do servidor, para gerenciamento prático de logs, consulte Configurar a captura de logs do servidor PostgreSQL e logs de atualização de versão principal.
Identificar o endereço IP do atacante
Revise os logs para encontrar o endereço IP a partir do qual as tentativas de acesso não autorizado estão sendo feitas. Se o invasor estiver usando uma
libpq
ferramenta baseada em você, você verá o endereço IP na entrada de log associada à tentativa de conexão com falha:Falha na conexão com o servidor em "<server-name.postgres.database.azure.com>" (x.x.x.x), porta 5432: FATAL: nenhuma entrada pg_hba.conf para host "y.y.y.y", usuário "<user-name>", banco de dados "postgres", sem criptografia
Neste exemplo,
y.y.y.y
é o endereço IP a partir do qual o invasor está tentando se conectar.Modifique o Para melhorar o
log_line_prefix
registro em log e facilitar a solução de problemas, você deve modificar olog_line_prefix
parâmetro em sua configuração do PostgreSQL para incluir o endereço IP do host remoto. Para registrar o nome do host remoto ou o endereço IP, adicione o código de%h
escape ao seulog_line_prefix
.Por exemplo, você pode alterar
log_line_prefix
o formato para o seguinte para registro em log abrangente:log_line_prefix = '%t [%p]: [%l-1] db=%d,user=%u,app=%a,client=%h '
Este formato inclui:
%t
para o carimbo de data/hora do evento%p
para o ID do processo[%l-1]
para o número da linha da sessão%d
para o nome do banco de dados%u
para o nome de utilizador%a
para o nome do aplicativo%h
para o endereço IP do cliente
Usando esse prefixo de linha de log, você pode controlar a hora, a ID do processo, o usuário, o aplicativo e o endereço IP do cliente associados a cada entrada de log, fornecendo contexto valioso para cada evento no log do servidor.
Bloquear o endereço IP do atacante Aprofunde-se nos registos para detetar quaisquer endereços IP suspeitos que continuem a aparecer em tentativas de acesso não autorizado. Depois de encontrar esses IPs, bloqueie-os imediatamente nas configurações do firewall. Isso corta seu acesso e impede mais tentativas não autorizadas. Além disso, reveja as regras de firewall para garantir que não são demasiado permissivas. Regras excessivamente amplas podem expor seu banco de dados a possíveis ataques. Limite o acesso apenas a intervalos de IP conhecidos e necessários.
Seguindo estas etapas, você deve ser capaz de resolver os problemas de autenticação e conectar-se com êxito ao seu Banco de Dados do Azure para PostgreSQL - Servidor Flexível. Se você ainda estiver enfrentando problemas depois de seguir as orientações fornecidas, não hesite em enviar um tíquete de suporte.