非対話的に「psql」にパスワードを指定するにはどうすればいいですか? 質問する

非対話的に「psql」にパスワードを指定するにはどうすればいいですか? 質問する

私はシェルスクリプトでデータベース作成プロセスを自動化しようとしていますが、パスワードを渡す際に行き詰まってしまいました。psql以下はシェル スクリプトのコードの一部です。

psql -U $DB_USER -h localhost -c"$DB_RECREATE_SQL"

psql非対話的な方法でパスワードを渡すにはどうすればよいですか?

ベストアンサー1

psqlを呼び出す前にスクリプト内でPGPASSWORD環境変数を設定します。

PGPASSWORD=pass1234 psql -U MyUsername myDatabaseName

参考:http://www.postgresql.org/docs/current/static/libpq-envars.html


編集

Postgres 9.2以降では、接続文字列またはURIユーザー名パスワードを含めることができます。構文は次のとおりです。

$ psql postgresql://[user[:password]@][host][:port][,...][/dbname][?param1=value1&...]

これを使用すると、他のユーザーが (Linux)、ProcessExplorer (Windows) などのツールを使用して実行中のプロセスのコマンド ラインを表示するときに、パスワードがプレーン テキストで表示されるため、セキュリティ上psのリスクが生じます。

この質問も参照してくださいデータベース管理者

おすすめ記事