31.15. 口令文件
用户家目录中的.pgpass
或者PGPASSFILE
引用的文件是一个可以包含口令的文件。如果连接要求口令(并且没有用其它方法声明口令), 那么可以用它。 在 Microsoft Windows 上,文件名字是%APPDATA%\postgresql\pgpass.conf
(%APPDATA%
指用户配置里的 Application Data 子目录)。
这个文件应该有下面这样的格式行:
_hostname_:_port_:_database_:_username_:_password_
你可以通过复制上面的行并且在前面添加#
用于添加提醒注释到文件, 头四个字段每个都可以是一个文本值,或者*
,它匹配所有的东西。 第一个匹配当前连接参数的口令行的口令域将得以使用。(因此,如果你使用了通配符, 那么应该把最具体的记录放在前面。)如果记录包含:
或者\
, 应该用\
逃逸。一个localhost
的主机名匹配来自本机的 TCP(主机名localhost
)和Unix域套接字(pghost
为空或缺省的套接字目录)连接。 在备用服务器中,一个名字为replication
的数据库被匹配到主服务器的流复制连接。 database
字段用处有限,因为对同一集群中所有数据库用户有相同密码。
在linux系统中,.pgpass
的权限必须不允许任何全局或者同组的用户访问; 我们可以用命令chmod 0600 ~/.pgpass
实现这个目的。如果权限比这个松, 这个文件将被忽略。在Microsoft Windows上,假定该文件存储在一个安全的目录中,所以没有做特殊的权限检查。