用户的主目录中的文件.pgpass可以包含密码, 如果连接需要密码(且未指定其他密码)。在Microsoft Windows中, 该文件的名称为%APPDATA%\postgresql\pgpass.conf (其中%APPDATA%指用户配置文件中的应用数据子目录)。 或者,可以使用连接参数passfile 或环境变量PGPASSFILE指定要使用的密码文件。
该文件中的行应采用以下格式:
hostname:port:database:username:password
(可以复制上面这一行,并在行首加上#,在文件中加入提示注释。)前四个字段中的每一个都可以是字面值,或者是*,后者可以匹配任何内容。将使用与当前连接参数匹配的第一行中的密码字段。(因此,使用通配符时,应将更具体的条目放在前面。)如果条目需要包含:或\,请使用\转义该字符。主机名字段首先匹配已指定的host连接参数;否则匹配已指定的hostaddr参数。如果两者都未指定,则查找主机名localhost。在以下情况下也会查找主机名localhost:连接使用 Unix 域套接字,且host参数与libpq的默认套接字目录路径匹配。在备库中,数据库字段为replication时,匹配连接到主库的流复制连接。除此之外,数据库字段的用途有限,因为同一用户在同一数据库集簇的所有数据库中使用相同的密码。
在 Unix 系统上,密码文件上的权限必须不允许所有人或组内访问,可以用chmod 0600 ~/.pgpass这样的命令实现。如果权限没有这么严格,该文件将被忽略。在微软 Windows 上,该文件被假定存储在一个安全的目录中,因此不会进行特别的权限检查。