114

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

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

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

4

1 に答える 1

260

あなたがマシンの管理者であると仮定すると、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 章クライアント認証

最後に単一のSを付けてpostgresと入力する必要があることに注意してください

コマンドの履歴またはサーバー ログにパスワードをクリア テキストのままにしておくことが問題である場合、psql はそれを回避するための対話型メタコマンドを次の代わりに提供しALTER USER ... PASSWORDます。

\password username

二重ブラインド入力でパスワードを要求し、設定に従ってハッシュし、クリア テキスト バージョンではなく、パスワードのハッシュ バージョンを使用してサーバーにコマンドをpassword_encryption発行します。ALTER USER

于 2013-01-29T17:15:58.373 に答える