Problém je stále ve vašem pg_hba.conf
soubor*.
Tento řádek:
local all postgres peer
Mělo by být:
local all postgres md5
* Umístění tohoto souboru není příliš konzistentní. Příkaz
locate pg_hba.conf
by měl pomoci; zde je několik příkladů:/etc/postgresql/*/main/pg_hba.conf
a/var/lib/pgsql/data/pg_hba.conf
.
Po změně tohoto souboru nezapomeňte restartovat svůj PostgreSQL server. Pokud používáte Linux, bylo by to sudo service postgresql restart
.
Toto jsou stručné popisy obou možností podle oficiálních dokumentů PostgreSQL o autentizačních metodách.
Ověření rovnocenným partnerem
Metoda peer autentizace funguje tak, že se získá uživatelské jméno operačního systému klienta z jádra a použije se jako uživatelské jméno povolené databáze (s volitelným mapováním uživatelských jmen). Tato metoda je podporována pouze u místních připojení.
Ověření heslem
Metody ověřování založené na hesle jsou md5 a password. Tyto metody fungují podobně s výjimkou způsobu, jakým je heslo odesíláno přes připojení, konkrétně MD5-hash a prostý text.
Pokud vás vůbec znepokojují útoky „sniffing“ hesel, pak je preferováno md5. Je-li to možné, je třeba se vždy vyhnout jednoduchému heslu. Nicméně md5 nelze použít s funkcí db_user_namespace. Pokud je připojení chráněno šifrováním SSL, lze bezpečně použít heslo (ačkoli autentizace certifikátem SSL může být lepší volbou, pokud závisí na použití SSL).
Ukázkové umístění pro pg_hba.conf
:/etc/postgresql/9.1/main/pg_hba.conf