Ошибка пользователь «X» не прошёл проверку подлинности (Ident) (FATAL, SQLSTATE 28000) означает, что подключение попало под правило в pg_hba.conf с методом ident, но имя пользователя ОС не удалось сопоставить с ролью PostgreSQL. Проблема в настройке аутентификации, а не в пароле.
Частые причины
- Имя пользователя ОС не совпадает с именем роли PostgreSQL, а сопоставление в pg_ident.conf не задано.
- В pg_hba.conf для подключения выбран метод ident/peer, хотя ожидался вход по паролю.
- Для TCP-подключения недоступен или не запущен ident-сервер (RFC 1413) на стороне клиента.
- В правиле указан map=, но соответствующей записи в pg_ident.conf нет.
Как исправить
- Найдите файл правил: SHOW hba_file;, откройте pg_hba.conf.
- Чтобы входить по паролю – смените метод на scram-sha-256:
# TYPE DATABASE USER ADDRESS METHOD host all all 127.0.0.1/32 scram-sha-256
- Либо оставьте ident и задайте сопоставление в pg_ident.conf, сослав на него из правила (ident map=mymap):
# MAPNAME SYSTEM-USERNAME PG-USERNAME mymap osuser dbuser
- Перечитайте конфигурацию: SELECT pg_reload_conf();