web-dev-qa-db-ja.com

忘れられたPostgreSQL Windowsパスワード

今朝、私はWindows 7 ProfessionalデスクトップのPostgreSQLデータベースに接続しようとしています。

デフォルト値は「postgres」ですが、最初にインストールしたときに使用したパスワードを忘れてしまいました。

私はググって、パスワードのリセットに関連する post を見つけました。私は手順に従いましたが、最終結果は投稿で言及されたものとは少し異なります。私が使った—

Net User postgres postgres

私のデータベースのパスワードをリセットするが、成功メッセージの代わりに私は得ています:

「システムエラー5が発生しました。アクセスが拒否されました。」

システムエラー。このエラーを回避してパスワードをリセットするにはどうすればよいですか?

36
AKIWEB

(注:これは、EDBインストーラーからPostgreSQL 9.2以降を使用しているリーダーにはあまり関係ありません。これにより、大幅に簡素化されたdefault _NETWORK SERVICE_、ただし他のアカウントを構成することはできますが)


_Net User postgres postgres_を使用してデータベースのパスワードをリセットしましたが、成功メッセージの代わりに_"System error 5 has occurred. Access is denied."_が表示されます

サービスアカウントのパスワードをリセットした(またはリセットしようとした)。 PostgreSQLはセキュリティ上の理由から管理者として実行されず、インストーラーは通常、PostgreSQL 9.1以前では「postgres」ユーザーアカウントでセットアップします1。 Windowsでは、レジストリにユーザーのパスワードを保存せずにユーザーとしてサービスを開始することはできません。そのため、インストーラーが行います。

Windowsユーザーアカウントpostgresのパスワードを変更すると、PostgreSQLサービスを開始できなくなります。したがって、これを行わないでください。更新されたパスワードを保存するようにサービス構成を修正する必要があります。

ありがたいことに、別の間違いが原因であなたがそれを行えなかったと思います。おそらく、非特権のWindowsユーザーアカウントまたはUACがインストールされているマシンで「管理者として実行」を使用せずにコマンドプロンプトを実行しているようです。そのため、postgresユーザー。

そのパスワードを変更する前に、それが本当にやりたいことであることを確認してください。ここで解決しようとしている問題は何ですか? postgres Windowsユーザーのパスワードを要求するデータベースの更新などをインストールしようとしていますか?

ほとんどの場合、データベースにログインしようとしているだけです。そのためには、データベースに保存されている(残念ながら完全に無関係な)パスワードを使用します。紛失/忘れたため、リセットする必要があります。

  • _pg_hba.conf_を検索します。通常は_C:\Program Files\PostgreSQL\9.1\data\pg_hba.conf_で
  • 必要に応じて、権限を設定して変更できるようにします。プロパティダイアログの[セキュリティ]タブを使用して、管理者によるオーバーライドを使用してその権利を自分自身に付与するまで、ユーザーアカウントはこれを行うことができない場合があります。または、スタートメニューでnotepad/notepad ++を見つけ、右クリックして[管理者として実行]を選択し、[ファイル]-> [開く]を使用して_pg_hba.conf_を開きます。
  • これを編集して、ホスト「127.0.0.1/32」上のユーザー「postgres」の「Host」行を「trust」に設定します。行がない場合は追加できます。挿入するだけです:

    _Host all postgres 127.0.0.1/32 trust
    Host all postgres ::1/128      trust # if IPv6 is in use
    _

    beforeその他の行。 (コメント、_#_で始まる行は無視できます)。

  • サービスコントロールパネルからPostgreSQLサービスを再起動します(start-> run-> _services.msc_)

  • psqlまたはPgAdmin-IIIを使用して接続する
  • _ALTER USER postgres PASSWORD 'postgres'_
  • _pg_hba.conf_に追加した行を削除するか、元に戻します
  • postgreSQLを再起動します。

参照: Windows上のPostgreSQLのpostgresパスワードをリセットするにはどうすればよいですか?


1。 9.2は、パスワードを必要としないNETWORKSERVICEアカウントを使用するようになったため、この問題はなくなりました

39
Craig Ringer

「postgres」と呼ばれるシステム(Windows)ユーザーと同じ名前のデータベースユーザーを区別する必要があります。

Pg_hba.confファイルを見つけます。これにより、PostgreSQLサーバーへのアクセスが制御されます。管理者権限を持つユーザーとして編集する必要があります。ユーザー「postgres」を含む行を探し、一時的にモードを「trust」に設定します。 postgresqlを再起動すると、パスワードなしで接続できるはずです。パスワードをリセットし、ファイルを元の設定に戻し、PostgreSQLを再起動します。

マニュアルには 認証方法pg_hba.conf ファイルの詳細があります。

4
Richard Huxton

他の誰かがこの問題に遭遇し、pgAdminも使用している場合は、これを確認することをお勧めします: http://www.homebrewandtechnology.com/blog/graphicallychangepostgresadminpassword

0
Lenii Ale