pg_passwdは、パスワードファイル(通常のテキスト)を 操作するツールで、パスワードファイルをPostgreSQL サーバでのクライアント認証を制御するために使用します。 この認証方法に関する詳細はAdministrator's Guideに 書かれています。
テキストパスワードファイルは、各行に1つの項目(各項目のフィールドはコロンによって 区別されます)を記述する形式となっています。1つ目のフィールドはユーザ名、2つ目の フィールドは暗号化されたパスワードです。その他のフィールドは無視されます。 (似たようなフォーマットを使用するアプリケーション間でパスワードファイルを 共有するため)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)ライブラリルーチンで、パスワードは有効な8文字に制限されています。
オリジナルパスワードファイル名はpasswords.bkに 変更されます。
このパスワードファイルを使用する際には、下記のような1行を pg_hba.confに記述して下さい。
host mydb 133.65.96.250 255.255.255.255 password passwordsこの1行によって、ホスト133.65.96.250から、passwordsファイルに 書かれているパスワード(また、そのファイルに書かれているユーザ)を使用して mydbというデータベースに接続を許可します。
Note: パスワードファイルのパスワードフィールドを空にしておくのも便利な使用方法です。 (これは空のパスワードとは異ります。)それらは pg_passwdで管理できませんが、 パスワードファイルを手動で編集することはいつでも可能です。