Problemem jest nadal twój pg_hba.conf
plik*.
Ta linia:
local all postgres peer
Powinno być:
local all postgres md5
* Lokalizacja tego pliku nie jest bardzo spójna. Polecenie locate pg_hba.conf
powinno pomóc; oto kilka przykładów:/etc/postgresql/*/main/pg_hba.conf
i /var/lib/pgsql/data/pg_hba.conf
.
Po zmodyfikowaniu tego pliku nie zapomnij zrestartować serwera PostgreSQL. Jeśli korzystasz z Linuksa, będzie to sudo service postgresql restart
.
Oto krótkie opisy obu opcji zgodnie z oficjalnymi dokumentami PostgreSQL dotyczącymi metod uwierzytelniania.
Uwierzytelnianie równorzędne
Metoda uwierzytelniania równorzędnego polega na uzyskaniu nazwy użytkownika systemu operacyjnego klienta z jądra i użyciu jej jako nazwy użytkownika dozwolonej bazy danych (z opcjonalnym odwzorowaniem nazwy użytkownika). Ta metoda jest obsługiwana tylko w przypadku połączeń lokalnych.
Uwierzytelnianie hasłem
Metody uwierzytelniania oparte na hasłach to md5 i hasło. Te metody działają podobnie, z wyjątkiem sposobu, w jaki hasło jest przesyłane przez połączenie, a mianowicie odpowiednio hashem MD5 i czystym tekstem.
Jeśli w ogóle obawiasz się ataków polegających na „podsłuchiwaniu” haseł, preferowany jest md5. Jeśli to możliwe, należy zawsze unikać zwykłego hasła. Jednak md5 nie może być używane z funkcją db_user_namespace. Jeśli połączenie jest chronione przez szyfrowanie SSL, hasło może być bezpiecznie używane (chociaż uwierzytelnianie certyfikatem SSL może być lepszym wyborem, jeśli zależy to od używania SSL).
Przykładowa lokalizacja pliku pg_hba.conf
:/etc/postgresql/9.1/main/pg_hba.conf