PostgreSQL的密码文件

在用户的Home目录中,.pgpass文件可以包含连接所需的密码(如果没有其他方式指定密码)。在Windows系统中,该文件名为%APPDATA%\postgresql\pgpass.conf(其中%APPDATA%指的是用户配置文件中的应用程序数据子目录)。另外,可以通过连接参数passfile或环境变量PGPASSFILE指定要使用的密码文件。

密码文件的内容如下:

hostname:port:database:username:password

前四个字段可以是字面值,也可以是即匹配任何内容。将使用与当前连接参数匹配的第一行中的密码字段。(因此,在使用通配符时,请首先放置更具体的条目。)如果条目需要包含:或\,可以使用\来转义这些字符。 主机名字段会与指定时的主机连接参数匹配,否则与指定时的hostaddr参数匹配;如果两者都未给出,则搜索主机名localhost。当连接为Unix域套接字连接,且主机参数与libpq的默认套接字目录路径匹配时,也会搜索主机名localhost。在standby服务器中,数据库字段为replication时,将匹配到主服务器的流复制连接。否则,数据库字段的作用有限,因为用户在同一个集群中的所有数据库使用相同的密码。

在Unix系统中,密码文件的权限必须禁止全局或组访问;可以通过命令如chmod 0600 ~/.pgpass来实现这一点。如果权限未按如此严格配置,文件将被忽略。在Microsoft Windows中,假定文件存储在安全的目录中,因此不进行特殊权限检查。