Добавишь shop строку доступа и применишь её, не останавливая сервер.
Узкая строка открывает ровно нужное: своя база, своя роль, один адрес и вход по паролю. Образец — строка crm. Метод trust пускает без пароля любого, кто совпал со строкой, — на сервере с данными его не ставят. Править файл — sudo vim /etc/postgresql/16/main/pg_hba.conf.
Новая строка сама ничего не меняет: сервер читает pg_hba.conf при запуске и по команде перечитать конфигурацию — sudo systemctl reload postgresql. Reload применяет правила к новым подключениям и не трогает открытые. restart останавливает сервер: соединения всех приложений обрываются.
Открой shop вход в его базу
Сделай так, чтобы роль shop входила в базу shop с 127.0.0.1 по паролю из ~/.pgpass — и только в неё. Сервер не перезапускай: к нему подключены другие приложения.
Цели · 0 из 3
- Пустить shop в базу shop по паролю ещё не выполнена
- Оставить shop без доступа к другим базам ещё не выполнена
- Применить правила без перезапуска сервера ещё не выполнена
Опечатка в pg_hba.conf сразу не видна. systemctl reload закончится молча с кодом 0, а сервер запишет в журнал /var/log/postgresql/postgresql-16-main.log строку pg_hba.conf was not reloaded и останется на прежних правилах — целиком, без новой строки. После restart с такой опечаткой сервер не запустится вовсе. Ошибки файла показывает представление pg_hba_file_rules:
Пустой ответ — ошибок нет. Иначе — номер строки и что в ней не так.
Ты добавил строку для shop и сделал sudo systemctl reload postgresql — код 0. psql по-прежнему пишет no pg_hba.conf entry. С чего начнёшь?
-
До пароля дело не дошло:
no pg_hba.conf entry— это этап правила. Новый пароль ответ сервера не изменит. -
С ошибкой в pg_hba.conf сервер после restart не запустится вовсе — отказ получат все приложения. Сначала найди ошибку:
pg_hba_file_rules, столбецerror. -
trustпустит без пароля любую роль в любую базу, а в файле с ошибкой сервер не применит и её: он останется на прежних правилах.
Reload с ошибкой в файле заканчивается молча, а сервер пишет в журнал pg_hba.conf was not reloaded и работает по старым правилам. pg_hba_file_rules покажет номер строки и ошибку, например invalid IP mask для адреса без /32.