私はPostgreSQL 9.1をUbuntu 12.04にインストールした後、 "postgres"スーパーユーザアカウントのパスワードを設定しました。 。postgresqlスーパーユーザのパスワードを入力しない
#Database administrative login by Unix domain socket
local all postgres md5
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
が、私はそれらの変更を行った後のPostgreSQLを再起動:私はそうのようにpg_hba.confを設定した理由はここにあるlogingがあるとき、私は、すべてのユーザーが自分のパスワードを入力する必要がありますする必要。私がこれをするときpsql -U testuser
私はパスワードを求められますが、そのような "postgres"アカウントでログインするとpsql -U postgres
私はパスワードプロンプトを表示せずにログインしています。 パスワードプロンプトを強制的に入力するとpsql -U postgres -W
私はログインできます正しいパスワードを入力するか、何も入力しないでください。誤ったパスワードを入力すると拒否されます。
誰にも私にこの理由が説明できますか?
関連するノート: "postgres"ユーザの認証方法としてidentを使用し、マシンのrootパスワードが必要な "postgres"ユーザになると主張する例がたくさんあります。その理由は、攻撃者がルートアクセス権を取得した場合、あなたのやり方が終わったということです。私は、rootパスワードと同じではないパスワードでログインする方が好きです。私は、さまざまなものに対して異なるパスワードを持つことを好みます。これは妥当ですか?あなたの奇妙な行動を再grep '^[^#]' pg_hba.conf
local all postgres md5
local all all md5
host all all 127.0.0.1/32 md5
.pgpassファイルにありました。ありがとう!あなたが引用したpg_hba.confファイルの部分は、私を少し混乱させます。ポストグルにパスワードなしでログインさせることなく、非対話型のアクセスを与えるにはどうすればよいですか? – Basil
あなたがpostgresアカウントのもとでサーバにログインすることを許さないと仮定して、ピア認証を見つけるべきです。 – Andrew
私はWindowsで同じ動作を確認しました。 PgAdminIIIで新しい接続を追加した後、私はpostgresと接続するときにpsqlによってパスワードの入力を求められなくなりました。原因はpgpass.confで、%APPDATA%\ postgresqlフォルダのPgAdminIIIによって自動的に作成されました。ダニエルありがとう。 –