4

PG gem を使用してデータベース接続をセットアップし、ファイルを送信する Ruby スクリプトを作成しています。ホスト名、ユーザー名、データベース名、およびポートの変数を取るように構成しています。付随するタスクを管理するために私が作成したシェル スクリプトでは~/.pgpass、ユーザーにパスワードを入力させるのではなく、格納されているパスワードに依存していますpsql。これは、多くのトランザクションがあり、明らかな理由もなくパスワードの入力が失敗する場合があるためです (そして、 20回で入るのは最悪です)。

パスワードが明示的に提供されていない場合、PG は同じソースにアクセスしますか? 慣例により、パスワードをファイルに含めましたが、これは内部で利用可能なリポジトリにプッシュされているため、ファイルにその情報を含めないことをお勧めします。私は今機能をテストしようとしていますが、SO コミュニティの誰かがこの質問に対する答えを知っているかどうか疑問に思っていました. PG が .pgpass ファイルにアクセスしない場合、ユーザーにパスワードの入力を求めることなく、変数を参照してファイルに書き込む方法はありますか?

よろしくお願いします。

4

1 に答える 1

4

はい、C PostgreSQL クライアント ライブラリに~/.pgpass基づく他のインターフェイスと同じように使用されます。libpq

ただし、パスワードをファイルに含めない代わりに、PGPASSWORD環境変数に含めることをお勧めします。これをスクリプトで設定すると、それが呼び出すすべてのプログラムに継承されます。

PGPASSWORD設定すると、すべての接続のパスワードとして使用されますlibpq。これは、PostgreSQL に接続するプログラムの大部分を意味します。

于 2013-08-16T21:48:18.320 に答える