PostgreSQLでパスワードを省略する(.pgpass)

ユーザのホームディレクトリに .pgpass というファイルを用意し、
そのファイルに所定の書き方でパスワードを設定すると、psql などでパスワードを聞かれなくする(入力を省略する)ことができる。

書式は次のとおり。

hostname:port:database:username:password

各項目は * で省略可能。具体的には
ユーザー名:SEFUUMI
パスワード:HOGEHOGE
サーバー、ポート、データベース名はどれも可としたばあい、以下のようになる。

*:*:*:SEFUUMI:HOGEHOGE

また、権限は 600 としなければならない。

これらを設定した上でも、fe_sendauth: no password supplied と出るような場合がある。
#たとえば、CGI で 呼び出したような時など

PostgreSQL のバージョンが 8.1 以前の場合には、環境変数 HOME の指定が無い可能性がある。
環境変数 HOME に .pgpass をおいたフォルダを指定すればよい。
(逆に、既に HOME が設定されていたときには、HOME で指定された場所に .pgpass を置く)

PostgreSQL 8.1 以降では、getpwuidを用いて、実効ユーザIDから HOME を求める方法に変更されているらしいので、こういう問題はなさそうです。

追記。

Windows だと、書き方がかなり異なります。以下を参照してください。
http://sfi.hamazo.tv/e1350560.html



同じカテゴリー(PostgreSQL)の記事

上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。

写真一覧をみる

削除
PostgreSQLでパスワードを省略する(.pgpass)
    コメント(0)