ユーザーpostgresのパスワード要件を削除


46

インストール時に、PostgreSQLにはdb rootユーザー(postgres)のパスワードがないことがわかります。

postgres=# select usename, passwd is null from pg_shadow;
 usename  | ?column? 
----------+----------
 postgres | t
(1 row)

...そして、次のように設定することをお勧めします。

alter role postgres password '<<very-secret>>';

(そして、それにpg_hba.conf応じてファイルを更新します)

私の質問は:パスワードがユーザーのために必要としなかったとき、前の状況に戻すために使用するSQLは何ですかpostgres

一般に、どのロールのパスワード要件を削除するにはどうすればよいですか?パスワードの変更方法ではなく、パスワード要件(passwd表のヌル列pg_shadow)を削除する方法を尋ねています。

回答:


55

パスワードが必要かどうかは関係がなくpg_shadow、ユーザーに対してパスワードが実際に定義されているかどうかは関係ありません。はい、私は知っています、それは奇妙です。

pg_hba.conf認証方法を制御します。パスワードを要求する場合は、md5認証を使用します。誰にもパスワードなしでログインを許可する場合は、を使用しますtrust。オペレーティングシステムでPostgreSQLと同じユーザー名を要求する場合は、peer(UNIX、ローカル接続のみ)またはsspi(Windows)を使用します。

パスワードが設定されているが、pg_hba.confPostgreSQLにパスワードを要求しない場合、パスワードは無視されます。

場合はpg_hba.conf、パスワードを求めるためにはPostgreSQLを伝えますが、どれもセットがあります、そして、すべてのログイン試行が供給され、どのようなパスワードに関係なく失敗します。


12

デフォルトでは、postgresユーザーにはパスワードがありません。ユーザーパスワードを削除するには(この場合はpostgresユーザー/ロールの場合):

alter role postgres password null;

また、認証をtrustin に設定する必要がありますpg_hba.conf -詳細を表示[ https://dba.stackexchange.com/a/19657/52550]


3
今、私はpsqlにアクセスできません
ロバートソリス

3
うん、今私が...パスワードの入力を求められてるとログインできません
Amalgovinus

1
@Amalgovinusが言ったように、このコマンドはpostgresから私を禁止します。
ナムG VU

1
あなたがエラーのためアクセスができない場合はpsql: fe_sendauth: no password supplied、その後、あなたを編集C:\Program Files\PostgreSQL\10\data\pg_hba.confし、置き換えるmd5trust127.0.0.1/32の下IPv4 local connectionsと隣::1/128の下でIPv6 local connections
マルコLackovic

1

これは私のために働いた:

alter role postgres password '';


4
postgres 10でこれを行うと、「注意:空の文字列は有効なパスワードではありません。パスワードをクリアしています」というエラーが表示されます。しかし、とにかくパスワードが変更されてしまい、何もログインできません!WTF !!
アマルゴビヌス

@Amalgovinus lalligoodの回答に対する私のコメントをご覧ください
Marco Lackovic
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.