У меня есть основная и подчиненная база данных. Главная база данных находится в защищенной сети, и только порт postgres разрешен к подчиненному серверу базы данных.
База данных должна быть защищена, и только у администратора есть пароль базы данных. Серверы также находятся на удаленном сайте, который недоступен для администратора, не заходя на сайт.
Я обнаружил, что подчиненная база данных будет повреждена / не синхронизирована, если соединение между ними будет прервано на какое-то время. Я написал сценарий для повторной синхронизации подчиненной базы данных, но проблема, с которой я столкнулся, заключается в том, что при запуске pg_basebackup запрашивает пароль. Мне нужен простой способ передать пароль команде pg_basebackup.
sudo -u postgres pg_basebackup -h <masterDB-IP> -D /var/lib/pgsql/9.3/data -U rep -v -P
Какие-либо предложения?
Ты можешь использовать .pgpass
файл как объяснение Вот. Конечно, вам нужно убедиться, что файл не доступен для чтения, чтобы защитить свой пароль.
Другой вариант - использовать доверенного пользователя. Вы можете создать определенного системного пользователя (без пароля для входа) и предоставить привилегии на удаленном сервере БД, используя trust
метод только с доверенного IP в pg_hba.conf
файл конфигурации. Вам не нужно передавать пароль. Все, что вам нужно, - это защитить эту учетную запись, не устанавливая пароль. Только пользователь root может su
этому пользователю для выполнения команды или настройки задания cron.