用户主目录中的 .pgpass
文件可以包含在连接需要密码(且未指定其他密码)时使用的密码。在 Unix 系统上,目录可以由 HOME
环境变量指定,如果未定义,则为有效用户的家目录。在 Microsoft Windows 上,文件名为 %APPDATA%\postgresql\pgpass.conf
(其中 %APPDATA%
指的是用户配置文件中的“Application Data”子目录)。或者,可以使用连接参数 passfile 或环境变量 PGPASSFILE
来指定要使用的密码文件。
此文件应包含以下格式的行
hostname
:port
:database
:username
:password
(您可以通过复制上面的行并加上 #
作为前缀来为文件添加一个提醒注释。) 前四个字段中的每一个都可以是文字值,或者 *
,表示匹配任何内容。将使用与当前连接参数匹配的第一行的密码字段。(因此,在使用通配符时,请将更具体的条目放在前面。)如果条目需要包含 :
或 \
,则用 \
转义该字符。主机名字段与 host
连接参数进行匹配(如果已指定),否则与 hostaddr
参数进行匹配(如果已指定);如果两者均未给出,则搜索主机名 localhost
。当连接是 Unix 域套接字连接且 host
参数匹配 libpq 的默认套接字目录路径时,也会搜索主机名 localhost
。在备用服务器中,数据库字段 replication
匹配连接到主服务器的流复制连接。否则,数据库字段的用处有限,因为用户在同一个集群的所有数据库中具有相同的密码。
在 Unix 系统上,密码文件的权限必须禁止对所有用户或组的访问;通过类似 chmod 0600 ~/.pgpass
的命令来实现。如果权限不那么严格,该文件将被忽略。在 Microsoft Windows 上,假定文件存储在安全的目录中,因此不对其进行特殊的权限检查。
如果您在文档中看到任何不正确的内容、与您对特定功能的体验不符的内容或需要进一步澄清的内容,请使用 此表单 报告文档问题。