33.15. 口令文件
一个用户主目录中的.pgpass
文件可能包含在连接需要时使用的口令(并且其他情况不会指定口令)。在微软的 Windows 上该文件被命名为%APPDATA%\postgresql\pgpass.conf
(其中%APPDATA%
指的是用户配置中的应用数据子目录)。 或者,可以使用连接参数passfile或环境变量 PGPASSFILE
指定口令文件。
这个文件应该包含下列格式的行:
hostname:port:database:username:password
(你可以向该文件增加一个提醒:把上面的行复制到该文件并且在前面加上#
)。前四个域的每一个都可以是文字值或者匹配任何东西的*
。第一个匹配当前连接参数的行中的口令域将被使用(因此,在使用通配符时把更特殊的项放在前面)。如果一个条目需要包含:
或者\
,用\
对该字符转义。一个localhost
主机名匹配来自本地机器的 TCP (主机名localhost
)和 Unix 域套接字(pghost
为空或者默认套接字目录)连接。在一台后备服务器上,一个名为replication
的数据库名匹配到主控服务器的流复制连接。database
域的用途有限,因为用户对同一个集簇中所有数据库都有相同的口令。
在 Unix 系统上,口令文件上的权限必须不允许所有人或组内访问,可以用命令比如chmod 0600 ~/.pgpass
实现。如果权限没有这么严格,该文件将被忽略。在微软 Windows 上,该文件被假定存储在一个安全的目录中,因此不会进行特别的权限检查。
本文转自PostgreSQL中文社区,原文链接:33.15. 口令文件