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