Ob ein Passwort erforderlich ist oder nicht, hat nichts mit pg_shadow zu tun und ob für den Benutzer tatsächlich ein Passwort definiert ist. Ja, ich weiß, das ist komisch.
pg_hba.conf steuert die Authentifizierungsmethode. Wenn Sie ein Passwort anfordern möchten, verwenden Sie md5 Authentifizierung. Wenn Sie jedem die Anmeldung ohne Passwort erlauben möchten, verwenden Sie trust . Wenn Sie im Betriebssystem denselben Benutzernamen wie in PostgreSQL benötigen möchten, verwenden Sie peer (UNIX, nur für lokale Verbindungen) oder sspi (Windows).
Wenn ein Passwort gesetzt ist, aber pg_hba.conf weist PostgreSQL nicht an, danach zu fragen, das Passwort wird ignoriert.
Wenn pg_hba.conf weist PostgreSQL an, nach einem Passwort zu fragen, aber es ist keins gesetzt, dann schlagen alle Anmeldeversuche fehl, egal welches Passwort angegeben wird.
Der Postgres-Benutzer hat standardmäßig kein Passwort. So entfernen Sie ein Benutzerkennwort (in diesem Fall für den Postgres-Benutzer/die Postgres-Rolle):
alter role postgres password null;
Außerdem müssen wir die Authentifizierung auf trust setzen in pg_hba.conf - Details anzeigen