私はシェルスクリプトでデータベース作成プロセスを自動化しようとしていますが、パスワードを渡す際に行き詰まってしまいました。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
のリスクが生じます。
この質問も参照してくださいデータベース管理者