Falha na autenticação de senha do Postgres

Eu tentei entrar com o usuário postgres da minha máquina windows para o meu servidor com o Pgadmin.

Mas continua me dando esse erro:

psql: FATAL: password authentication failed for user "postgres" 

Então eu tentei entrar na linha de comando com o psql, que me deu o mesmo erro. Em seguida, redefini a senha para ‘test’ usando o psql, depois de colocar a input local em pg_hba.conf para confiar. E então eu coloquei a input de volta ao md5 e tentei fazer o login com a senha ‘test’.

No psql eu usei estes comandos:

 ALTER ROLE postgres WITH PASSWORD 'test'; ALTER ROLE postgres PASSWORD 'test'; ALTER USER postgres WITH PASSWORD 'test'; ALTER USER postgres PASSWORD 'test'; 

E esse comando especial do psql

 \password 

Toda vez, eu retornei a input local pg_hba.conf para o md5 e tentei fazer o login com o psql:

 psql -U postgres 

E então me pedem uma senha. Depois de digitar ‘test’, o psql me dá o mesmo erro que mencionei anteriormente.

E, claro, reiniciei o postgresql após cada e todas as mudanças no arquivo pg_hba. E estou usando o psql com ‘su postgres’.

Portanto, mesmo que eu possa alterar a senha da maneira usual, ela não é aceita como senha.

Espero que alguém seja capaz de me ajudar com isso.

Algumas informações:

Postgresql 9.1 Ubuntu 12.04

Arquivo Pg_hba (conforme solicitado)

 local all postgres md5 local all all md5 # IPv4 local connections: host all all 127.0.0.1/32 md5 # IPv6 local connections: host all all ::1/128 md5 host all all /32 md5 

Quando quis modificar a senha, mudei o top md5 para trust. Eu quero mencionar que essa configuração funcionou sem problemas antes.

Os resultados de

 sudo -u postgres psql -x -c "select * from pg_user where usename='postgres'" 

Estamos:

 usename | postgres usesysid | 10 usecreatedb | t usesuper | t usecatupd | t userepl | t passwd | ******** valuntil | 1970-01-01 00:00:00+01 useconfig | 

Conforme mostrado na última edição, a senha é válida até 1970, o que significa que ela é inválida no momento. Isso explica a mensagem de erro, que é a mesma que se a senha estivesse incorreta.

Redefina a validade com:

 ALTER USER postgres VALID UNTIL 'infinity'; 

Em uma pergunta recente, outro usuário teve o mesmo problema com contas de usuário e PG-9.2:

PostgreSQL – Autenticação de senha falha após adicionar funções de grupo

Então, aparentemente, há uma maneira de definir inadvertidamente uma validade de senha falsa para a época do Unix (1º de janeiro de 1970, o valor mínimo possível para o tipo de linha de ano). Possivelmente, há um bug no próprio PG ou em alguma ferramenta cliente que criaria essa situação.

EDIT : acaba por ser um bug pgadmin. Veja https://dba.stackexchange.com/questions/36137/

pg_hba.conf input pg_hba.conf define methods de login por endereços IP. Você precisa mostrar a parte relevante do pg_hba.conf para obter ajuda adequada.

Altere esta linha:

 host all all /32 md5 

Para refletir suas configurações de rede local. Então, se seu IP é 192.168.16.78 (class C) com uma máscara de 255.255.255.0 , então coloque isso:

 host all all 192.168.16.0/24 md5 

Certifique-se de que o seu WINDOWS MACHINE está na rede 192.168.16.0 e tente novamente.

Eu me deparei com essa pergunta e as respostas aqui não funcionaram para mim; Eu não conseguia descobrir por que não consigo fazer login e recebi o erro acima.

Acontece que o postgresql salva nomes de usuários em letras minúsculas, mas durante a autenticação usa maiúsculas e minúsculas.

 CREATE USER myNewUser WITH PASSWORD 'passWord'; 

irá criar um usuário com o nome de usuário ‘mynewuser’ e senha ‘passWord’.

Isso significa que você precisa autenticar com ‘mynewuser’ e não com ‘myNewUser’. Para um novato em pgsql como eu, isso era confuso. Espero que ajude os outros que se deparam com esse problema.