PostgreSQLのユーザー作成 - @ledsun blog でPostgreSQLのユーザーを作成しました。 パスワードを指定しませんでした。 このとき作成したユーザーにはどのようなパスワードが設定されるのでしょうか? ユーザー名と同じになるのでしょうか?それとも乱数で初期パスワードが設定されるのでしょうか?
createuserコマンドを使ってユーザーを作成したので、そのマニュアルを確認します。
-P --pwprompt このオプションが指定されると、createuserは新しいユーザのパスワードのプロンプトを表示します。 もしパスワード認証を使う予定がなければ、これは必要ありません。
-p
オプションはつけませんでした。
この場合、パスワード認証を使わないようです。
つまりパスワードは設定されていない、あるいは設定されていても無視されるようです。
では、パスワード認証以外の認証には何があるのでしょうか?
trust認証が指定されるとPostgreSQLは、サーバに接続できる全ての人に対して (データベーススーパーユーザさえも)その人が指定する任意のデータベースユーザ名としてのアクセス権限が付与されていると想定します。
これみたいです。 HomebrewでインストールしたPostgreSQLはTrust認証が有効になっていそうです。
Changing your (Homebrew) PostgreSQL configuration from trust to md5
というそのものズバリな記事があります。
これを参考に自分の環境の設定を確認してみます。
まず設定ファイルpg_hba.conf
の場所を確認します。
~►psql postgres 09:27 psql (14.2) Type "help" for help. postgres=# show hba_file; hba_file ------------------------------------- /usr/local/var/postgres/pg_hba.conf (1 row)
つぎにpg_hba.conf
の内容を確認します。
# "local" is for Unix domain socket connections only local all all trust # IPv4 local connections: host all all 127.0.0.1/32 trust # IPv6 local connections: host all all ::1/128 trust # Allow replication connections from localhost, by a user with the # replication privilege. local replication all trust host replication all 127.0.0.1/32 trust host replication all ::1/128 trust
trustがいっぱい出てくるので、Trust認証が有効になっているようです。