Проблемът все още е вашият pg_hba.conf
файл*.
Този ред:
local all postgres peer
Трябва да бъде:
local all postgres md5
* Местоположението на този файл не е много последователно. Командата
locate pg_hba.conf
трябва да помогне; ето няколко примера:/etc/postgresql/*/main/pg_hba.conf
и/var/lib/pgsql/data/pg_hba.conf
.
След като промените този файл, не забравяйте да рестартирате вашия PostgreSQL сървър. Ако сте на Linux, това би било sudo service postgresql restart
.
Това са кратки описания на двете опции според официалните документи на PostgreSQL относно методите за удостоверяване.
Удостоверяване на партньори
Методът за удостоверяване на партньори работи, като получава потребителско име на операционната система на клиента от ядрото и го използва като разрешено потребителско име на базата данни (с опционално съпоставяне на потребителско име). Този метод се поддържа само при локални връзки.
Удостоверяване с парола
Методите за удостоверяване, базирани на парола, са md5 и парола. Тези методи работят по подобен начин, с изключение на начина, по който паролата се изпраща през връзката, а именно съответно MD5-хеширан и чист текст.
Ако изобщо сте загрижени за атаки с "подушване" на пароли, тогава md5 е за предпочитане. Обикновената парола винаги трябва да се избягва, ако е възможно. Въпреки това, md5 не може да се използва с функцията db_user_namespace. Ако връзката е защитена чрез SSL криптиране, тогава паролата може да се използва безопасно (въпреки че удостоверяването на SSL сертификат може да е по-добър избор, ако зависи от използването на SSL).
Примерно местоположение за pg_hba.conf
:/etc/postgresql/9.1/main/pg_hba.conf