После обновления версии PostgreSQL и при попытке подключиться к базе стало появляться сообщение
FATAL: Ident authentication failed for user "..."
с указанием юзернейма активного пользователя. И при этом никакого запроса пароля. И совсем не реагирует на ключи -U или —username.
При этом если переключится на пользователя postgres то зыql запускается без всяких проблем и запроса пароля.
Как оказалось немного поменялась конфигурация и настройки параметров доступа. Об этом чуть подробнее.
Теперь настройки лежат в файле pg_hba.conf в папке рядом с базами данных. На моей системе это каталог /var/lib/pgsql/data. Именно он указан в параметрах у процесса postgres.
Итак о содержимом файла pg_hba.conf. В нем описывается какой метод идентификации использовать. Можно определить метод идентификации для для конкретной базы, конкретного пользователя или же для адреса с которого будет произведенно подключение. В самом файле есть подробная инструкция по структуре правил.
Если кратко, то нас интересуют два метода: «ident» и «md5». Первый обозначает подключение по логину активного пользователя. Второй позволяет использовать пароль, как это было обычно.
Так следующая запись
host all postgres 127.0.0.1/32 ident
host all all 127.0.0.1/32 md5
указывает что для всех пользователей работает доступ ко всем базам с использованием пароля. При этом у пользователя postgres есть возможность подключиться к любой базе просто запустив psql без параметров.
После любых изменений в pg_hba.conf для вступления их в силу нужно перегрузить процесс postgres.