Qu'un mot de passe soit requis ou non n'a rien à voir avec pg_shadow et si un mot de passe est réellement défini pour l'utilisateur. Oui, je sais, c'est bizarre.
pg_hba.conf contrôle la méthode d'authentification. Si vous souhaitez demander un mot de passe, utilisez md5 authentification. Si vous souhaitez autoriser la connexion sans mot de passe à personne, utilisez trust . Si vous souhaitez exiger le même nom d'utilisateur dans le système d'exploitation que dans PostgreSQL, utilisez peer (UNIX, uniquement pour les connexions locales) ou sspi (Windows).
Si un mot de passe est défini, mais que pg_hba.conf ne dit pas à PostgreSQL de le demander, le mot de passe est ignoré.
Si pg_hba.conf indique à PostgreSQL de demander un mot de passe mais aucun n'est défini, toutes les tentatives de connexion échoueront, quel que soit le mot de passe fourni.
L'utilisateur postgres par défaut n'a pas de mot de passe. Pour supprimer un mot de passe utilisateur (dans ce cas pour l'utilisateur/rôle postgres) :
alter role postgres password null;
Nous devons également définir l'authentification sur trust en pg_hba.conf - afficher les détails