Errore PostgreSQL: password authentication failed for user

psql: error: connection to server at "localhost" (127.0.0.1), port 5432 failed: FATAL:  password authentication failed for user "app_user"

Hai raggiunto il server, pg_hba.conf ha selezionato un metodo di autenticazione basato su password per questa connessione, e il controllo della password è fallito. Il messaggio al client è deliberatamente vago; il log del server di solito dice di più.

Cosa significa questo errore

Al client viene detto solo "authentication failed" — è intenzionale, per evitare di far trapelare informazioni agli attaccanti. Il log del server, invece, registra il motivo sottostante allo stesso timestamp: il ruolo senza password assegnata, la password che non corrisponde, o il formato della password memorizzata non utilizzabile con il metodo di autenticazione che pg_hba.conf richiede.

Quest'ultimo merita una parola: le password sono memorizzate come hash, usando l'algoritmo che password_encryption aveva quando la password è stata impostata (scram-sha-256 nelle versioni moderne, md5 storicamente). Cambiare password_encryption o il metodo pg_hba non converte le password già memorizzate — i mismatch emergono come login falliti per password "sicuramente giuste".

Cause comuni

Come diagnosticarlo

Come risolverlo

🔍 Il fallimento vicino: no pg_hba.conf entry for host — quando nessuna regola corrisponde affatto alla connessione.