Когда вы говорите, что база данных разрешает только локальные соединения: вам нужно различать соединения "сокет unix" и соединения "TCP-to localhost", которые не являются одним и тем же и могут обрабатываться совершенно по-разному.* Для проверки: на сервере базы данных посмотрите, если добавление -h 127.0.0.1
в командную строку psql влияет на то, можете ли вы подключиться или нет.
Правила того, требуется ли пароль, указаны в * 1006.*.Может случиться так, что ваш сервер базы данных настроен на использование «идентификатора» аутентификации для unix («локальных») соединений, поэтому ваше имя пользователя Unix автоматически принимается в качестве имени пользователя базы данных.Поскольку этот метод аутентификации обычно недоступен для соединений TCP / IP («хост»), вам нужно использовать другой метод - если он установлен на «md5», то для него потребуется пароль.
Вероятно, все, что вам нужно сделать, это установить пароль для вашей учетной записи пользователя в базе данных при локальном подключении: ALTER USER username PASSWORD 'password'
.Если вы хотите, чтобы при удаленном подключении все время запрашивался пароль, напишите файл .pgpass
, чтобы сохранить его в учетной записи пользователя клиента: http://www.postgresql.org/docs/9.0/interactive/libpq-pgpass.html