まず、ほとんどのUnixディストリビューションでは、デフォルトのPostgresユーザーは認証にパスワードを要求も使用もしないことを理解することが重要です。代わりに、Postgresが最初にインストールされた方法と使用しているバージョンに応じて、デフォルトの認証方法はidentになります。 またはpeer 。
ident 認証では、TCPポート113で実行されているオペレーティングシステムの識別サーバーを使用して、ユーザーの資格情報を確認します。
peer 一方、認証はローカル接続に使用され、オペレーティングシステムのログインしたユーザー名がPostgresデータベースのユーザー名と一致することを確認します。
ほとんどのシステムでは、デフォルトのPostgresユーザーはpostgresです。 また、認証にパスワードは必要ありません。したがって、パスワードを追加するには、最初にログインしてpostgresとして接続する必要があります ユーザー。
$ sudo -u postgres psql
接続に成功し、psqlを表示している場合 プロンプトが表示されたら、パスワードの変更にジャンプします セクション。
データベース「postgres」が存在しないというエラーを受け取った場合は、template1に接続してみてください 代わりにデータベースを使用し、成功した場合は、パスワードの変更に進みます。 。
$ sudo -u postgres psql template1
psqlに接続しようとしたときに認証エラーが発生した場合 クライアントの場合、Postgres認証構成ファイル(pg_hfa.conf)を変更する必要がある場合があります。
通常は/etc/postgresql/#.#/main/pg_hba.confにある構成ファイルを開きます 、ここで#.# 使用しているPostgresのバージョンは次のとおりです:
$ sudo nano /etc/postgresql/9.3/main/pg_hba.conf
auth configファイルは、認証ルールのリストです。 postgresを表示している最初の行が見つかるまでファイルを下にスクロールします 3番目の列のユーザー(そのような行が存在する場合)。必要に応じて行のコメントを解除します(セミコロンを削除します)。そうでない場合は、行が完全に欠落している場合は、ファイルの先頭に次の行を追加して変更を保存します。
local all postgres peer
この認証ルールは、ユーザーpostgresのすべてのデータベースに対して確立されたローカル接続についてPostgresに通知するだけです。 、peerを使用して認証します プロトコル。
注:Postgresの一部の古いバージョンは、デフォルトの認証方法であるidentを優先しますが、最近のほとんどのインストールでは、代わりに上記のピアを利用します。結果が異なる場合は、両方をテストする必要があるかもしれません。
構成ファイルが更新されたら、デフォルトユーザーとしてログインして接続の手順を繰り返します。 デフォルトのpostgresとして接続を試みるセクション ユーザー。成功したら、パスワードの変更に進みます。
psqlでPostgresへの接続が確立されました プロンプトが表示されたら、ALTER USERを発行します postgresのパスワードを変更するコマンド ユーザー:
postgres=# ALTER USER postgres PASSWORD 'myPassword';
ALTER ROLE
成功すると、PostgresはALTER ROLEの確認を出力します 上記のように。
最後に、psqlを終了します \qを使用してクライアント コマンド。
postgres=# \q
これですべて完了です。デフォルトのpostgres これで、ユーザーは他のアプリケーションで使用するためのアカウントに関連付けられたパスワードを使用できます。