pg_passwd はテキストパスワードファイルを操作するツールです。これらのファイルは PostgreSQL サーバのクライアント認証を制御します。認証機構の設定に関してのより詳細は、 管理者用ガイド に記載されています。
このテキストファイルの書式は、各行に1エントリを記載し、各エントリのフィールドは、コロンによって区切られています。最初のフィールドはユーザ名、2番目は暗号化されたパスワードです。他のフィールドは無視されます。(似たような書式を使用するアプリケーションとこのパスワードファイルを共有できるようにするために存在します。) pg_passwd を使用して、ユーザは対話式にエントリの追加や、既存のエントリのパスワードの変更、そのパスワードを暗号化を行なうことができます。
pg_passwd コマンドの引数にパスワードファイルの名前を与えてください。PostgreSQL から使用できるようにするためには、そのファイルは、サーバのデータディレクトリに存在し、そのベース名は 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 という名前に変更されます。
このパスワードファイルを使用する際には、以下のような行を pg_hba.conf に記載して下さい。
host mydb 133.65.96.250 255.255.255.255 password passwords
これにより、このpasswords内のパスワード(とその中のユーザ)を使用して、133.65.96.250 のホストから mydb データベースにアクセスできます。
Note: また、パスワードファイルに、パスワードフィールドが空のエントリを持たせることも便利な方法です。(これは空のパスワードではありません。)このエントリによってシステムにアクセスできるユーザを制限することができます。これらのエントリは pg_passwd によって管理できませんが、パスワードファイルを手作業で編集することができます。