PostgreSQL: FATAL password authentication failed — настройка pg_hba.conf
- При создании или подключении базы 1С выдает:
FATAL: password authentication failed for user "postgres". - Сервер 1С не может связаться с кластером PostgreSQL на локальной или удаленной машине.
- Не удается войти под суперпользователем через pgAdmin или консоль psql.
- Ошибка возникает сразу после установки СУБД Postgres Pro 1C на Linux или Windows.
Причина ошибки
PostgreSQL использует строгую систему контроля сетевых доступов, описанную в файле pg_hba.conf (Host-Based Authentication). Если метод шифрования пароля клиента не совпадает с настройками сервера или IP-адрес сервера 1С не входит в список разрешенных подсетей, СУБД жестко блокирует попытку входа.
Шаг 1. Поиск файла pg_hba.conf
- В Linux (Ubuntu/Debian/Rocky):
/var/lib/pgpro/1c-XX/data/pg_hba.confили/etc/postgresql/XX/main/pg_hba.conf - В Windows:
C:\Program Files\PostgresPro 1C\XX\data\pg_hba.conf
Шаг 2. Корректировка правил авторизации
- Откройте файл
pg_hba.confв текстовом редакторе от имени администратора/root. - Найдите секцию правил в конце файла и настройте доверенные подключения для локального хоста:
# TYPE DATABASE USER ADDRESS METHOD # Локальные подключения через сокет (Linux) local all all trust # Локальные сетевые подключения IPv4 (Windows/Linux) host all all 127.0.0.1/32 md5 host all all ::1/128 md5 # Подключения из локальной подсети (если 1C на другом сервере) host all all 192.168.1.0/24 md5 - Примечание: Для временного сброса пароля можно заменить
md5наtrust(вход без пароля), зайти, поменять пароль и вернутьmd5обратно.
Шаг 3. Перезапуск службы PostgreSQL
# Linux:
systemctl restart postgrespro-1c-*
# Windows:
Restart-Service postgresql* Частые вопросы (FAQ)
В чем опасность метода авторизации 'trust' в pg_hba.conf?
Метод trust разрешает любому человеку или программе подключаться к базе данных под любым пользователем (включая postgres) вообще без ввода пароля. Не используйте его для внешних сетей!
Почему 1С не работает с современным методом scram-sha-256 по умолчанию?
Некоторые старые релизы платформы 1С 8.3 не умеют корректно работать с методом шифрования scram-sha-256 и требуют классический метод md5.
Как сменить пароль пользователя postgres через консоль Linux?
Выполните: sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'НовыйПароль';"
Нужно ли перезагружать весь сервер после правки pg_hba.conf?
Нет, достаточно выполнить перезагрузку службы СУБД или команду 'SELECT pg_reload_conf();' в консоли psql.