pg_passwd

Name

pg_passwd  --  平文パスワードファイルの操作を行なう。

Synopsis

pg_passwd filename
  

説明

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]