ユーザのホームディレクトリの.pgpass
は、接続にパスワードが必要な場合(かつ、他に指定されたパスワードが無かった場合)に使用するパスワードを格納するファイルです。
Microsoft Windowsでは、このファイルの名前は%APPDATA%\postgresql\pgpass.conf
(ここで%APPDATA%
はユーザのプロファイル内のアプリケーションデータディレクトリ)です。
他に、接続パラメータpassfileを利用するか、環境変数PGPASSFILE
で、パスワードファイルを指定できます。
このファイル内の行の書式は次の通りです。
hostname
:port
:database
:username
:password
(このファイルでは、上のような行をコピーし、その先頭に#
をつけて忘れないようにコメントとして残すことができます。)
先頭の4フィールドはそれぞれリテラル値にすることも、あるいはすべてに一致する*
を使用することもできます。
最初に現在の接続パラメータと一致した行のパスワードフィールドが使用されます。
(従って、ワイルドカードを使用する場合は、始めの方により具体的な項目を入力してください。)
項目内に:
または\
を含める必要があれば、\
でこれらの文字をエスケープする必要があります。
ホスト名フィールドは、host
接続パラメータか、もし指定されていれば、hostaddr
パラメータと一致します。
どちらも指定されていなければ、ホスト名localhost
が検索されます。
接続がUnixドメインソケット接続で、host
パラメータがlibpqのデフォルトソケットディレクトリパスに一致した場合も、ホスト名localhost
が検索されます。
スタンバイサーバでは、replication
という名称のデータベースは、マスタサーバとの間でなされるストリーミングレプリケーション用の接続に一致します。
同一のクラスタ内のすべてのデータベースに対するパスワードは同じものですので、データベースフィールドの有用性は限定的なものです。
Unixシステムにおいて、パスワードファイルの権限はグループ、他者へのアクセスをすべて拒否しなければなりません。
これはchmod 0600 ~/.pgpass
といったコマンドによって行います。
権限をこれよりも緩くすると、このファイルは無視されます。
Microsoft Windowsにおいては、このファイルが安全なディレクトリに格納されていることを前提としていますので、特別に行われる権限の検査はありません。