pg_passwd
pg_passwd — 操纵平面口令文件
大纲
pg_passwd filename
描述
pg_passwd 是一个操纵Postgres 平面口令文件功能的工具。这种风格的口令认证在安装中不是必需的,而是多种受支持的安全机制之一。
在$PGDATA/pg_hba.conf中以与Ident
认证相同的风格指定口令文件:
host unv 133.65.96.250 255.255.255.255 password passwd
上面这一行允许来自 133.65.96.250 的访问使用
$PGDATA/passwd中列出的口令。口令文件的格式遵循
/etc/passwd
和
/etc/shadow
的格式。第一个字段是用户名,第二个字段是加密后的口令。其余部分完全被忽略。因此下面的三个示例行指定的是相同的用户和口令对:
pg_guest:/nB7.w5Auq.BY:10031:::::: pg_guest:/nB7.w5Auq.BY:93001:930::/home/guest:/bin/tcsh pg_guest:/nB7.w5Auq.BY:93001
把口令文件提供给 pg_passwd 命令。在上面描述的情况下,把工作目录切换到PGDATA后,执行下面的命令为pg_guest
指定新口令:
% pg_passwd passwd Username: pg_guest Password: Re-enter password:
其中Password:
和Re-enter password:
提示要求输入相同的口令,且输入不会显示在终端上。原口令文件会被改名为
passwd.bk。
psql
使用-u
选项来调用这种风格的认证。
下面的几行展示了该选项的用法示例:
% psql -h hyalos -u unv Username: pg_guest Password: Welcome to the POSTGRESQL interactive sql monitor: Please read the file COPYRIGHT for copyright terms of POSTGRESQL type \? for help on slash commands type \q to quit type \g or terminate with semicolon to execute query You are currently connected to the database: unv unv=>
Perl5 认证像这样使用新风格的Pg.pm:
$conn = Pg::connectdb("host=hyalos dbname=unv
user=pg_guest password=xxxxxxx");
更多细节请参阅
src/interfaces/perl5/Pg.pm。
Pg{tcl,tk}sh 认证像这样使用
pg_connect
命令的
-conninfo
选项:
% set conn [pg_connect -conninfo \\
"host=hyalos dbname=unv \\
user=pg_guest password=xxxxxxx "]
你可以通过执行下面的命令列出该选项的所有键:
% puts [ pg_conndefaults]