Как автоматизировать процесс входа в psql без необходимости ввода пароля в shell скрипте?

Как можно выполнить SQL запрос через скрипт bash, используя пароль для авторизации заранее, без необходимости вводить его вручную?
  • 6 августа 2024 г. 8:03
Ответы на вопрос 3
Для автоматизации процесса входа в psql без необходимости ввода пароля в shell скрипте, можно использовать переменные окружения. Например, вы можете установить переменную окружения PGPASSWORD со значением вашего пароля перед запуском psql:

```bash
export PGPASSWORD=your_password
psql -U your_username -d your_database
```

Для выполнения SQL запроса через скрипт bash с авторизацией заранее можно использовать команду psql с опцией -c (или --command) для передачи SQL запроса непосредственно в командной строке. Например:

```bash
PGPASSWORD=your_password psql -U your_username -d your_database -c "SELECT * FROM your_table;"
```

Обратите внимание, что для безопасности рекомендуется хранить пароли в зашифрованном виде и использовать механизмы безопасного хранения паролей, такие как ключи или прокси-файлы.
Почитайте про .pgpass 
Можно ещё в вызове pgsql задать пароль через -W,
, но это плохой способ, так как пароль будет виден всем при вызове ps.
Как уже сказали: .pgpass (предпочтительный) или через флаг -W 

Также можно задать переменную окружения PGPASSWORD (но также не безопасно , т.к. виден в ps )

PGPASSWORD=password psql -h 192.168.20.145 -p 5432 -U tony -d trn -с "Some magic things"


P.S. если это в скрипте, то лучше будет самому скрипту передать переменную

PGPASSWORD=password ./connect-psql.sh
Похожие вопросы