2025年9月25日: PostgreSQL 18 发布!
支持的版本: 当前 (18) / 17 / 16 / 15 / 14 / 13
开发版本: devel
不支持的版本: 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

32.16. 密码文件 #

用户主目录中的 .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 上,假定文件存储在安全的目录中,因此不对其进行特殊的权限检查。

提交更正

如果您在文档中看到任何不正确的内容、与您对特定功能的体验不符的内容或需要进一步澄清的内容,请使用 此表单 报告文档问题。