如果连接需要密码(并且没有以其他方式指定密码),则用户主目录中的 .pgpass 文件可以包含要使用的密码。在 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 上,假定该文件存储在安全的目录中,因此不会进行任何特殊权限检查。
如果您在文档中看到任何不正确的内容,与您对特定功能的体验不符或需要进一步澄清的内容,请使用 此表单 报告文档问题。