pg_passwd は、 Postgres の平文パス ワードファイル機能を操作するツールです。 この形のパスワード認証はデータベースインスタンスに 必須 なものではありませんが、い くつかあるセキュリティ機構の 1 つです。
Ident 認証と同じ形式で、 $PGDATA/pg_hba.conf 中でパスワード ファイルを以下のように指定します。
host unv 133.65.96.250 255.255.255.255 password passwd上の行では、$PGDATA/passwd にあるパスワー ドを使用した、133.65.96.250 からのアクセスを許可しています。 このパスワードファイルの書式は /etc/passwd 、及び、 /etc/shadow の書式に従っています。 最初のフィールドはユーザ名、2 番目のフィールドが暗号化されたパ スワードです。 この他のフィールドは完全に無視されます。 従って、以下の 3 行のサンプルは同一のユーザとパスワードの組合せ を指定したものになります。
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=>
Pg.pm の新しい形式を使用した、Perl5 におけ る認証は次のようになります。
$conn = Pg::connectdb("host=hyalos dbname=unv user=pg_guest password=xxxxxxx");より詳細については、 src/interfaces/perl5/Pg.pm を参照して下さい。
Pg{tcl,tk}sh における認証は、以下のように、 -conninfo オプションを付けた pg_connect コマンドを使用します。
% set conn [pg_connect -conninfo \\ "host=hyalos dbname=unv \\ user=pg_guest password=xxxxxxx "]次のコマンドを実行することで、このオプション用の全てのキーの一覧を得る ことができます。
% puts [ pg_conndefaults]