Twój pg_hba.conf
powinien rzeczywiście wymagać hasła dla połączeń z gniazdem unixowym, ale nadal istnieją sposoby obejścia tego, które należy zweryfikować:
-
.pgpass
plik w katalogu domowym postgres zawierający hasło (sprawdź także PGPASSFILE zmienna środowiskowa dla niestandardowej ścieżki). -
PGPASSWORD można ustawić zmienną środowiskową.
Istnieje również możliwość, że edytujesz niewłaściwy plik pg_hba.conf. Po połączeniu jako postgres, poprawną ścieżkę można uzyskać do weryfikacji za pomocą SHOW hba_file
polecenie SQL.
Możesz także sprawdzić plik dziennika, /var/log/postgresql/postgresql-9.1-main.log
w celu potwierdzenia, że pliki konfiguracyjne zostały ponownie załadowane, gdy o to poprosisz, i poszukaj podejrzanych wiadomości podczas uwierzytelniania.
Jeśli chodzi o powód, dla którego połączenia bez hasła z użytkownikiem postgres są powszechne, debian PG-9.1 pg_hba.conf
ma ten komentarz na temat ich odrzucenia:
# DO NOT DISABLE!
# If you change this first entry you will need to make sure that the
# database superuser can access the database using some other method.
# Noninteractive access to all databases is required during automatic
# maintenance (custom daily cronjobs, replication, and similar tasks).
#
# Database administrative login by Unix domain socket
local all postgres peer
Ponieważ Debian i Ubuntu używają tych samych pakietów postgres, dotyczy to również Ubuntu.