1. ホーム
  2. postgresql

[解決済み] PostgreSQLの場合。UbuntuでPostgreSQLのパスワードをリセットする【終了しました

2022-09-27 01:11:18

質問

Ubuntuでは、PostgreSQLデータベースをインストールし、サーバーのスーパーユーザを作成しました。

もし、postgresqlのスーパーユーザーのパスワードを忘れてしまった場合、そのユーザーのパスワード(パスワード)をリセットするにはどうしたらよいでしょうか?

アンインストールしてから、再度インストールしてみましたが、以前に作成したsuperuserが保持されています。

解決方法を教えてください。

あなたがマシンの管理者であると仮定して、Ubuntuはあなたに以下の権利を与えています。 sudo を使用して、任意のユーザーとして任意のコマンドを実行することができます。

また、あなたが pg_hba.conf ファイル内で ( /etc/postgresql/9.1/main ディレクトリにある) ファイルに、最初の規則としてこの行が含まれている必要があります。

# Database administrative login by Unix domain socket  
local   all             postgres                                peer

(ファイルの場所について。 9.1 はメジャーなpostgresのバージョンであり main は使用するクラスタの名前です。新しいバージョンのpostgresやデフォルトでない名前を使用している場合は異なります。この場合 pg_lsclusters コマンドを使用してください)。

とにかく、もし pg_hba.conf ファイルにその行がない場合は、ファイルを編集して行を追加し、サービスを再ロードして sudo service postgresql reload .

でログインできるはずです。 psql をpostgresのスーパーユーザとして、このシェルコマンドでログインできるはずです。

sudo -u postgres psql

psqlの中に入ったら、SQLコマンドを発行します。

ALTER USER postgres PASSWORD 'newpassword';

このコマンドでは postgres はスーパーユーザの名前です。もし、パスワードを忘れたユーザが ritesh であった場合、コマンドは次のようになります。

ALTER USER ritesh PASSWORD 'newpassword';

参考文献 PostgreSQL 9.1.13 ドキュメント、第19章。クライアント認証

と入力する必要があることに留意してください。 postgres を1つだけ S を最後につけて

コマンドの履歴やサーバログに平文でパスワードを残すことが問題である場合、psqlはそれを回避するための対話的なメタコマンドとして ALTER USER ... PASSWORD :

\password username

ダブルブラインド入力でパスワードを要求し、それを password_encryption の設定に従ってハッシュ化し ALTER USER コマンドを発行し、平文ではなくハッシュ化されたパスワードでサーバに送信します。