Подтвердить что ты не робот

Как настроить postgresql, чтобы он принял логин + пароль auth?

У меня есть новая версия ubuntu 10.10 со всеми обновлениями и postgresql 8.4
Чтобы postgresql мог принимать логин + пароль, я настроил его через:

sudo su postgres
psql
ALTER USER postgres WITH PASSWORD 'password';
CREATE DATABASE myapp;
\q
exit
sudo vi /etc/postgresql/8.4/main/pg_hba.conf
change "local all all indent" to "local all all trust"

Но, что удивительно, это не работает! Команда

psql -U postgres password

Вычисляет с ошибкой:

psql: FATAL:  Ident authentication failed for user "postgres"

Любые подсказки, как я могу заставить psql -U работать?

4b9b3361

Ответ 1

Вероятно, хорошая идея оставить пользователя postgres с идентификационной аутентификацией. По умолчанию я полагаю, что Ubuntu использует пользователя postgres для выполнения обновлений, резервных копий и т.д., И это требует, чтобы он мог войти в систему без указанного пароля.

Я рекомендую создать другого пользователя (возможно, с вашим собственным именем пользователя) и предоставить ему привилегии администратора. Затем вы можете использовать этого пользователя с паролями в локальных соединениях.

Вот как выглядят соответствующие части моего pg_hba.conf:

# allow postgres user to use "ident" authentication on Unix sockets
# (as per recent comments, omit "sameuser" if on postgres 8.4 or later)
local   all   postgres                         ident sameuser
# allow all other users to use "md5" authentication on Unix sockets
local   all   all                              md5
# for users connected via local IPv4 or IPv6 connections, always require md5
host    all   all        127.0.0.1/32          md5
host    all   all        ::1/128               md5

Также обратите внимание, что psql -U postgres password не будет делать то, что вы хотите. Пароль не должен указываться в командной строке. Это попытается войти в систему как пользователь "postgres" в базу данных с именем "пароль".

Вместо этого вы должны использовать psql -U postgres myapp. Postgres автоматически предложит вам пароль, если он правильно настроен, чтобы потребовать его.

Ответ 2

Я думаю, что ваш файл pg_ident.conf неверно настроен. Кроме того, вы пробовали

psql -U postgres -W

Ответ 3

Еще одна вещь, которая может вызвать это, - это истекшие учетные данные. Я не думаю, что это произошло в версии 8, но в версии 9, когда вы создаете новую роль в pgadmin, она создается в состоянии с истекшим сроком действия, и вам нужно изменить или удалить дату истечения срока действия, прежде чем вы сможете войти в систему с помощью он.