Din pg_hba.conf
borde verkligen kräva ett lösenord för unix-socket-anslutningar, men det finns fortfarande sätt runt det som du bör verifiera:
-
ett
.pgpass
fil i postgres hemkatalog som innehåller lösenordet (kolla även PGPASSFILE miljövariabel för en icke-standardiserad sökväg). -
PGPASSWORD miljövariabel kan ställas in.
Och det finns också möjligheten att du redigerar fel pg_hba.conf-fil. När du är ansluten som postgres kan den korrekta sökvägen erhållas för verifiering med SHOW hba_file
SQL-kommando.
Du kanske också vill kontrollera loggfilen, /var/log/postgresql/postgresql-9.1-main.log
för att bekräfta att konfigurationsfilerna laddas om när du ber om det, och leta efter eventuella misstänkta meddelanden under autentiseringen.
När det gäller anledningen till att lösenordslösa anslutningar med postgres-användaren är vanliga, debian PG-9.1 pg_hba.conf
har den här kommentaren om att inte tillåta dem:
# 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
Eftersom Debian och Ubuntu använder samma postgres-paket, gäller detta även för Ubuntu.