PostgreSQL Error 28P01: invalid_password — сброс пароля и SCRAM-SHA-256
- Ошибка подключения:
FATAL: password authentication failed for user "postgres" (SQLSTATE 28P01). - Блокировка доступа фоновых служб и серверов приложений 1С к базе данных.
- Ошибки несоответствия алгоритма шифрования паролей (MD5 против SCRAM-SHA-256).
1. Проверка текущего алгоритма шифрования паролей
SHOW password_encryption;2. Восстановление доступа и сброс пароля пользователя
Если пароль утерян, временно разрешите локальный доступ в pg_hba.conf:
# Временно установите метод trust для локального подключения:
local all postgres trustПеречитайте конфигурацию: pg_ctlcluster 15 main reload
Подключитесь к СУБД и задайте новый надежный пароль:
psql -U postgres
ALTER USER postgres WITH PASSWORD 'NewStrongPassword123!';
ALTER USER usr1cv8 WITH PASSWORD 'New1cPassword123!';Верните в pg_hba.conf безопасный метод scram-sha-256 и выполните reload.
3. Проверка статуса учетной записи
SELECT usename, valuntil, rolcanlogin FROM pg_user WHERE usename = 'usr1cv8'; Частые вопросы (FAQ)
Почему после изменения password_encryption со старым паролем возникает 28P01?
Изменение параметра password_encryption не пересчитывает существующие хеши паролей в pg_authid. Пользователь должен явно выполнить ALTER USER ... WITH PASSWORD заново.
Поддерживает ли платформа 1С:Предприятие шифрование SCRAM-SHA-256?
Современные версии платформы 1С:Предприятие (начиная с 8.3.18+) полностью поддерживают scram-sha-256. Для устаревших версий может потребоваться оставить метод md5.
Может ли пароль содержать спецсимволы?
Да, но при передаче в строках подключения или скриптах Bash экранируйте символы $, @, :, или используйте одинарные кавычки.
Как проверить валидность пароля через терминал?
Используйте утилиту psql с явным указанием хоста: PGPASSWORD='my_pass' psql -h 127.0.0.1 -U my_user -d my_db -c 'SELECT 1;'