Вы, вероятно, используете ident
или даже trust
аутентификацию.Краткий обзор самых распространенных методов аутентификации:
trust
- Вы можете войти в систему, несмотря ни на что. ident
- Вы можете войти в систему, если ваше имя пользователя UNIXсовпадает с именем пользователя PostgreSQL. md5
- Вы можете войти в систему, если ваш пароль (зашифрованный с помощью md5
) правильный.
Редактировать: В PostgreSQL 9.0 появился метод аутентификации peer
.Исходя из того, что я понял, ident
и peer
имеют одну и ту же цель - ваш логин определяется именем пользователя вашей операционной системы, но ident
обращается к идент-серверу, прослушивающему порт 113, в то время как peer
ищет ваши учетные данныесистемный вызов.См. http://www.postgresql.org/docs/9.1/static/auth-methods.html#AUTH-IDENT
Найдите файл pg_hba.conf и посмотрите, сможете ли вы найти что-то похожее на это:
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all ident
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
Когда вы попытаетесь подключиться,PostgreSQL проходит через эту строку построчно.Если тип соединения (например, local
, host
), база данных, пользователь (пользователь базы данных, а не системный пользователь) и адрес совпадают, будет использоваться указанный метод аутентификации.
Если вы хотитечтобы запросить пароль для доступа к вашему собственному пользователю PostgreSQL, вы могли бы добавить такую строку в top перед строкой local all all ident
:
# TYPE DATABASE USER CIDR-ADDRESS METHOD
local mydbname myusername md5
Обязательно перезапустите PostgreSQL после того, какменяется pg_hba.conf
.