Ошибка PostgreSQL 28000 означает, что соединение с сервером установлено, но авторизация отклонена: указанная роль не прошла проверку по правилам pg_hba.conf. Класс 28 отвечает за некорректную авторизацию, при этом отдельный код 28P01 выделен под неверный пароль.
Частые причины
- Для данной комбинации адреса, базы и роли нет подходящей строки в pg_hba.conf.
- Выбран метод ident или peer, а имя пользователя ОС не сопоставлено с ролью PostgreSQL.
- Роль не существует или не имеет атрибута LOGIN.
Как исправить ошибку 28000
- Найдите активный файл правил и проверьте, какая строка применилась (представление pg_hba_file_rules доступно начиная с PostgreSQL 10):
- Добавьте или исправьте правило под нужный метод аутентификации:
- Убедитесь, что роль существует и может подключаться:
- Примените изменения: SELECT pg_reload_conf();
SHOW hba_file; SELECT * FROM pg_hba_file_rules;
host appdb app_user 10.0.0.0/24 scram-sha-256
ALTER ROLE app_user LOGIN; GRANT CONNECT ON DATABASE appdb TO app_user;