Я пытаюсь разработать cli, использующий сценарии удара для получения отчетов от a PostgreSQL
база данных.
Я использую команду psql и-F параметр для создания CSV с результатом.
Таким образом, команда - что-то как этот:
psql -h myhost -p 5432 -U myuser -d mydatabase -W -A -F"," -c "<MY QUERY>" > $(date +%Y%m%d%H%M)_report.csv
Когда я выполняю эту команду, всегда запрос пароля запрашивается, даже если я использую переменную PGPASSWORD для установки пароля прежде, чем выполнить это.
Если я только пытаюсь соединиться, это работает, но если я добавляю-W-A-F-c и отправляю это в определенный файл, это не работает.
Там возможность состоит в том, чтобы автоматически представить пароль базы данных?
TL; DR: просто удалите -W
из своих psql опций.
, "Когда я выполняю эту команду, всегда запрос пароля запрашивается, даже если я использую переменную PGPASSWORD для установки"
, "Всегда просят пароль", то, для чего -W
опция. В особенности это происходит перед сверением с сервером, если пароль необходим, который зависит от правил, настроенных в pg_hba.conf
.
Из psql страницы справочника:
Вт, - Сила пароля psql для запроса пароль прежде, чем соединиться с базой данных.
Эта опция никогда не важна, так как psql автоматически запросит пароль, если сервер потребует аутентификации по паролю. Однако psql потратит впустую попытку подключения, узнавая, что сервер хочет пароль. В некоторых случаях стоит ввести-W для предотвращения дополнительной попытки подключения.