(注:EDBインストーラーからPostgreSQL 9.2以降を使用している読者にはほとんど関係ありません。EDBインストーラーでは、を使用してデフォルトのインストールが大幅に簡素化されて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
他の行の前。(コメントは無視できます。行はで始まります#
)。
[サービス]コントロールパネルからPostgreSQLサービスを再起動します(start-> run-> services.msc
)
- psqlまたはPgAdmin-IIIなどを使用して接続します
ALTER USER postgres PASSWORD 'postgres'
- 追加した行を削除する
pg_hba.conf
か、元に戻します
- PostgreSQLを再起動します。
参照:WindowsでPostgreSQLのpostgresパスワードをリセットするにはどうすればよいですか?
1. 9.2 NETWORKSERVICE
はパスワードを必要としないアカウントを使用するようになったため、この問題はなくなりました。