他のバージョンの文書 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

34.16. パスワードファイル

ユーザのホームディレクトリの.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においては、このファイルが安全なディレクトリに格納されていることを前提としていますので、特別に行われる権限の検査はありません。