Windows 7にPostgres 9.3をインストールしました。インストールは正常に完了しました。 postgresユーザーのパスワードを要求することはありません。
サービスpostgresql-x64-9.3が稼働しています。ただし、接続できません。パスワードがわかりません。次の答えが見つかりましたが、役に立ちませんでした:
[〜#〜] warning [〜#〜]:trust
はまさにそれを意味します。 PostgreSQLサーバーに接続できる人なら誰でも制御できます。ユーザーtrust
(またはpostgres
users)などのスーパーユーザーが接続できるall
モードを設定すると、PostgreSQLを完全に制御でき、おそらくシェルコマンドも実行できます。通常、これを使用してパスワードを変更し、構成を以前使用していた認証モードに戻します。
無人インストーラースクリプトを使用した場合、パスワードはスクリプトまたは関連する設定ファイルに含まれます。
それ以外の場合は、パスワードを知らないのではなく、紛失/忘れた場合と同じように扱います。
pg_hba.conf
を編集し、認証モードをデフォルトのmd5
ではなくtrust
に設定しますpsql
またはPgAdminなどと接続するALTER USER postgres PASSWORD 'mynewpassword';
pg_hba.conf
をもう一度編集して、認証モードをmd5
に戻しますpg_hba.conf
はデータディレクトリにあります。デフォルトでは%PROGRAMFILES%\PostgreSQL\9.3\data
になります。
これを編集するには、セキュリティタブを使用して(UACプロンプト経由で)読み取り/書き込み権限を自分に付与する必要があります。これには、ファイルの所有者として自分自身を設定する必要がある場合があります。
UNIXシステムでは、先頭に追加する方が安全です。
local all all peer
pg_hba.conf
に続いてSudo -u postgres psql
(PostgreSQLサーバーがユーザーpostgres
として実行されていると想定)への行で、パスワードを使用せずにインタラクティブなpsql
セッションを取得します。そうすれば、trust
を使用する必要がなくなります。
コントロールに移動>>コンピューターの管理>>ローカルユーザーとグループ>>ユーザー>> openpgsvcを右クリック>>パスワードを設定します。その後、openpgsvcでこのパスワードを使用してアクセスできます