Redrock Postgres 搜索 英文
版本: 9.3 / 9.4 / 9.5 / 9.6 / 10 / 11 / 12 / 13 / 14 / 15 / 16 / 17

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