Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
4
respostas

[Dúvida] check_time_query Windows 11 erro na senha

Meu script não valida a senha:

Encontrado statement
Encontrado duration
psql: erro: a conexão com o servidor em "localhost" (127.0.0.1), porta 5432 falhou: FATAL: autenticação do tipo senha falhou para o usuário "postgres"
Resultado da verificação:
Query já incluída na tabela
Encontrado statement
Encontrado duration
psql: erro: a conexão com o servidor em "localhost" (127.0.0.1), porta 5432 falhou: FATAL: autenticação do tipo senha falhou para o usuário "postgres"
Resultado da verificação:
Query já incluída na tabela
Filtragem de logs concluída
psql: erro: a conexão com o servidor em "localhost" (127.0.0.1), porta 5432 falhou: FATAL: autenticação do tipo senha falhou para o usuário "postgres"
Execução de comandos SQL concluída
PS E:\CURSOPOST>

Preciso passar algum parâmetro?

4 respostas
solução!

Olá, Lazaro. Como vai?

Esse erro FATAL: autenticação do tipo senha falhou é um clássico no gerenciamento de bancos de dados, especialmente ao automatizar scripts no Windows. O problema ocorre porque o psql (cliente do PostgreSQL) é um executável interativo; por padrão, ele para tudo e espera que um ser humano digite a senha no teclado. Como seu script está rodando em segundo plano, ele não consegue "digitar" a senha e a conexão é recusada.

Como você é Gerente de Projetos de TI, sabe que em automação precisamos eliminar a interação manual. Para o PostgreSQL no Windows 11, você tem três caminhos principais para resolver isso sem precisar passar a senha como um parâmetro direto (o que seria um risco de segurança):

1. O Arquivo .pgpass (Recomendado)

O PostgreSQL procura por um arquivo chamado pgpass.conf para buscar credenciais automaticamente.

  • Localização: No Windows, ele deve estar em %APPDATA%\postgresql\pgpass.conf.
  • Formato: localhost:5432:nome_do_banco:postgres:sua_senha
  • Vantagem: É a forma mais segura e profissional de gerenciar automações locais.

2. Variável de Ambiente PGPASSWORD

Você pode definir a senha temporariamente na sessão do seu terminal (PowerShell) antes de rodar o script:

$env:PGPASSWORD = "sua_senha_aqui"
.\seu_script.ps1
  • Atenção: Use isso apenas para testes rápidos, pois a senha pode ficar exposta no histórico do terminal.

3. Configuração pg_hba.conf (Nível Adm)

Se você estiver em um ambiente de desenvolvimento controlado e quiser que o usuário postgres se conecte localmente sem senha:

  1. Localize o arquivo pg_hba.conf na pasta data do seu Postgres.
  2. Mude a linha de conexão host para 127.0.0.1/32 de scram-sha-256 (ou md5) para trust.
  3. Reinicie o serviço do PostgreSQL.

Dica técnica:
Verifique se o seu script check_time_query não está tentando usar aspas duplas de forma errada na senha dentro do código, o que também causa falha de autenticação. O Windows 11 às vezes lida de forma diferente com caracteres especiais em strings do PowerShell.

Se estiver usando o PowerShell para disparar o comando, tente encapsular a chamada do psql garantindo que o ambiente reconheça o usuário.

Qual dessas abordagens melhor se adapta à política de segurança do seu projeto atual?

Oi, Estudantes!

Complementando a respota do Evandro. Pode ter acontecido daa senha informada não está batendo com a configurada no banco.

Teste ajustar a senha dentro do script ou passar a senha corretamente na execução. Algumas coisas para verificar:

  • confirme se a senha do usuário postgres está correta;
  • teste primeiro a conexão manualmente no terminal:
psql -U postgres -h localhost

Ele vai pedir a senha. Se não conectar, então a senha realmente está diferente.

No Windows, também pode ser necessário definir a variável de ambiente PGPASSWORD , no terminal, antes de executar o script:


$env:PGPASSWORD="sua_senha"

Depois execute novamente o script.

Espero que o problema seja apenas a senha e que se resolva com as dicas passadas. Qualquer dúvida, estaremos por aqui!

Material Complementar
Esse conteúdo pode estar em inglês, para traduzi-lo utilize o tradutor automático do navegador ou clique com o botão direito do mouse sobre a página e selecione a opção Traduzir para o português.
Caso este post tenha lhe ajudado, por favor, marcar como solucionado

Boa tarde Evandro.
Agradeço pelas explicações. Fiquei com a 3ª opção.
Abraços.

Olá Nathália, agradeço por sua resposta.
A senha está correta.
Abraço.