2024 年 9 月 26 日: PostgreSQL 17 发布!
支持的版本:当前 (17) / 16 / 15 / 14 / 13 / 12
开发版本:devel
不支持的版本: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 文件可以包含用于连接需要密码的数据库的密码(如果没有以其他方式指定密码)。在 Microsoft Windows 上,该文件名为 %APPDATA%\postgresql\pgpass.conf(其中 %APPDATA% 指的是用户配置文件中的“应用程序数据”子目录)。或者,可以使用连接参数 passfile 或环境变量 PGPASSFILE 来指定要使用的密码文件。

该文件应包含以下格式的行

hostname:port:database:username:password

(您可以通过复制上面的行并在其前面添加 # 来向文件添加提醒注释。) 前四个字段中的每一个都可以是文字值,也可以是 *,它匹配任何内容。与当前连接参数匹配的第一行的密码字段将被使用。(因此,当您使用通配符时,请将更具体的条目放在前面。)如果条目需要包含 :\,请使用 \ 对其进行转义。主机名字段与 host 连接参数匹配(如果指定了该参数),否则与 hostaddr 参数匹配(如果指定了该参数);如果没有给出,则搜索主机名 localhost。当连接是 Unix 域套接字连接且 host 参数与 libpq 的默认套接字目录路径匹配时,也会搜索主机名 localhost。在备用服务器中,数据库字段 replication 匹配到主服务器上的流式复制连接。在其他情况下,数据库字段的用处有限,因为用户在同一个集群中的所有数据库中具有相同的密码。

在 Unix 系统上,密码文件的权限必须禁止对世界或组的任何访问;可以通过 chmod 0600 ~/.pgpass 等命令来实现。如果权限比这更宽松,则该文件将被忽略。在 Microsoft Windows 上,假定该文件存储在安全的目录中,因此不会进行任何特殊的权限检查。

提交更正

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