pg_passwd 是一个操作平面口令文件的工具,该文件是用于控制客户与 PostgreSQL 服务器之间的认证的. 有关这种认证机制的更多细节请参阅 管理员手册.
这个文本口令文件的形式是每条记录一行; 每条记录的字段用冒号分隔.第一个字段是用户名, 第二个字段是加密的口令.其它字段被忽略 (这样就便于在使用相似格式的口令文件的应用之间共享). pg_passwd 工具的作用就是 让用户可以交互地往这样的文件里增加记录,修改现有记录的口令, 以及加密口令等.
把口令文件当做pg_passwd命令的参数提供给它. 如果想用于客户端认证, 那么该文件需要放在服务器的数据目录中,而且该文件的本名 应该在pg_hba.conf 的访问控制文件中声明.
$ pg_passwd /usr/local/pgsql/data/passwords File "/usr/local/pgsql/data/passwords" does not exist. Create? (y/n): y Username: guest Password: Re-enter password:这里的 Password: 和 Re-enter password: 提示符要求输入一样的口令, 而且它们不会在终端上回显. 还要注意口令局限在八个有效的字符,这是标准 crypt(3) 库过程的 限制.
原来的口令文件该名为 passwords.bk.
要使用这个口令文件,把类似下面这行放在 pg_hba.conf:
host mydb 133.65.96.250 255.255.255.255 password passwords上面这一行允许从 133.65.96.250 来的用户使用在 passwords(而且只有在里面的用户可以访问.) 里列出来的口令访问。
注意: 在口令文件里有空口令域的记录存在也很有用. (这和没有口令是两码事.) 这些记录不能用 pg_passwd 管理, 但总是可能手工编辑口令文件.