インストール時に、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
ファイルを適宜更新します)
私の質問は次のとおりです。ユーザーpostgres
にパスワードが必要なかったときに、以前の状況に戻すために使用するSQLは何ですか。
一般的に、どのロールのパスワード要件を削除するにはどうすればよいですか?パスワードを変更する方法ではなく、パスワードの要件を削除する方法(テーブルpg_shadow
のnull passwd
列)を尋ねています。
パスワードが必要かどうかは、pg_shadow
とは関係なく、パスワードがユーザーに対して実際に定義されているかどうかには関係ありません。はい、私は知っています、それは奇妙です。
pg_hba.conf
は、認証方法を制御します。パスワードを要求する場合は、md5
認証を使用します。パスワードなしで誰にもログインできないようにするには、trust
を使用します。オペレーティングシステムでPostgreSQLと同じユーザー名が必要な場合は、peer
(UNIX、ローカル接続のみ)またはsspi
(Windows)を使用します。
パスワードが設定されていても、pg_hba.conf
がPostgreSQLに要求するように指示していない場合、パスワードは無視されます。
pg_hba.conf
がPostgreSQLにパスワードを要求するように指示しているが、何も設定されていない場合、どのパスワードを指定しても、すべてのログイン試行は失敗します。
デフォルトでは、postgresユーザーにはパスワードがありません。ユーザーパスワード(この場合はpostgresユーザー/ロール)を削除するには:
alter role postgres password null;
また、pg_hba.conf
の認証をtrust
に設定する必要があります- 詳細を表示
これは私のために働きました:
alter role postgres password '';