Postgres Pro: управление паролем пользователя postgres
Зачем нужен пользователь postgres
После установки СУБД Postgres Pro создается системный суперпользователь postgres. Этот пользователь имеет полный доступ к:
- созданию и удалению баз данных;
- управлению пользователями и ролями;
- запуску функций и процедур с любыми привилегиями;
- системной конфигурации, расширениям и резервным копиям.
Поэтому его защита — одна из критических задач эксплуатации.
Установка и начальная настройка пароля
Как установить пароль при первом входе
При инициализации кластера (initdb) пароль не задается. По умолчанию используется peer-аутентификация: пользователь в ОС postgres может подключаться без ввода пароля.
Чтобы установить пароль:
ALTER USER postgres WITH PASSWORD 'НовыйНадежныйПароль';
Либо с psql под root или postgres:
sudo -u postgres psql \password postgres
Как изменить или сбросить пароль postgres
Если вы потеряли пароль, но у вас есть root-доступ на сервере:
- Остановите сервер Postgres Pro:
sudo systemctl stop postgrespro-std-14
- Отредактируйте файл pg_hba.conf, заменив метод аутентификации для postgres на trust:
local all postgres trust
- Перезапустите сервер:
sudo systemctl start postgrespro-std-14
- Зайдите в базу и измените пароль:
psql -U postgres ALTER USER postgres WITH PASSWORD 'новый_пароль';
- Верните pg_hba.conf в исходное состояние (peer, md5 или scram-sha-256) и перезапустите сервер.
Где хранится пароль и как работает аутентификация
Методы из pg_hba.conf:
|
Метод |
Описание |
|---|---|
|
peer |
Аутентификация по имени пользователя ОС |
|
md5 |
Хэшированный пароль (по умолчанию) |
|
scram-sha-256 |
Более безопасный метод (доступен с PostgreSQL 10) |
|
trust |
Без пароля — небезопасно, использовать только для отладки |
Где хранится хэш пароля
Пароли пользователей хранятся в системной таблице:
SELECT rolname, rolpassword FROM pg_authid;
Просматривать содержимое этой таблицы может только суперпользователь. Сам пароль хранится в виде хэша MD5 или SCRAM.
Настройка безопасности для суперпользователя
-
Ограничьте доступ в pg_hba.conf:
- Разрешите вход postgres только с localhost.
- Используйте peer для системного пользователя, md5 или scram — для удаленных.
-
Отключите удаленный доступ суперпользователю:
Например, добавьте в pg_hba.conf:
host all postgres 0.0.0.0/0 reject
- Отключите логин через SSH под пользователем postgres в ОС.
- Замените логины приложений на отдельные пользователи с минимальными правами.
- Используйте сложные пароли длиной от 14 символов, включающие цифры, спецсимволы, верхний и нижний регистры.
Частые ошибки
|
Ошибка |
Причина и решение |
|---|---|
|
psql: FATAL: password authentication failed |
Неверный пароль или метод в pg_hba.conf |
|
psql: could not connect to server: No such file |
База не запущена или неверный unix_socket_dirs |
|
role "postgres" does not exist |
Кластер не инициализирован или используется другой путь к базе |
Практика: автоматизация задания пароля
Если вы инициализируете сервер в CI/CD или в ansible:
- name: Set postgres password
become: yes
become_user: postgres
shell: |
psql -c "ALTER USER postgres WITH PASSWORD '{{ db_admin_password }}';"
Заключение
Пароль суперпользователя postgres в Postgres Pro — это ключ к управлению всей системой. Неправильное обращение с ним может привести к компрометации базы данных. Чтобы защитить систему:
- задавайте надежный пароль;
- отключайте внешний доступ суперпользователю;
- не используйте postgres для приложений;
- включайте только безопасные методы аутентификации (scram-sha-256);
- регулярно проверяйте логи на предмет попыток доступа.
Postgres Professional — это российская промышленная СУБД, созданная на базе открытого PostgreSQL, но значительно расширенная для корпоративного применения. В отличие от классического PostgreSQL, решения от Postgres Professional включают в себя поддержку российских ГОСТов и сертификацию ФСТЭК, повышенную надёжность, оптимизации под высоконагруженные системы (в том числе 1С и DWH), инструменты резервного копирования, мониторинга и отказоустойчивости. За платформой стоит команда ядра PostgreSQL в России, что гарантирует актуальность, стабильность и экспертную техническую поддержку 24/7.
Для компаний, которым важно не просто использовать PostgreSQL, а внедрить его на уровне корпоративных стандартов — с гарантией, сопровождением, документированными улучшениями и адаптацией под российское законодательство — Postgres Pro Enterprise становится логичным выбором. Это не просто бесплатная база данных, а полноценный продуктовый стек, совместимый с BI, аналитикой, ERP, 1С и другими системами, в том числе импортозамещёнными.



