Erreur 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"

Vous avez atteint le serveur, pg_hba.conf a sélectionné une méthode d'authentification par mot de passe pour cette connexion, et la vérification du mot de passe a échoué. Le message client est délibérément vague ; le journal du serveur en dit généralement plus.

Ce que signifie cette erreur

Le client ne reçoit que « authentication failed » — c'est intentionnel, pour éviter de divulguer des informations aux attaquants. Le journal du serveur, en revanche, enregistre la raison sous-jacente au même horodatage : le rôle n'ayant aucun mot de passe assigné, le mot de passe ne correspondant pas, ou le format de mot de passe stocké n'étant pas utilisable avec la méthode d'authentification exigée par pg_hba.conf.

Ce dernier point mérite un mot : les mots de passe sont stockés hachés, en utilisant l'algorithme qu'avait password_encryption lorsque le mot de passe a été défini (scram-sha-256 sur les versions modernes, md5 historiquement). Changer password_encryption ou la méthode pg_hba ne convertit pas les mots de passe déjà stockés — les incohérences se manifestent par des échecs de connexion pour des mots de passe « assurément corrects ».

Causes fréquentes

Comment la diagnostiquer

Comment la corriger

🔍 L'échec voisin : no pg_hba.conf entry for host — quand aucune règle ne correspond du tout à la connexion.