$shibayu36->blog;

クラスター株式会社のソフトウェアエンジニアです。エンジニアリングや読書などについて書いています。

手元からpsqlでログインする時にパスワード入力せずにログインできてしまう理由

sudo brew install postgresql

Macpostgresqlを入れて、

$ psql postgres
postgres=# create role dbuser createdb login inherit password 'dbuser';

のようにroleを作ってみたのだけど

psql --username=dbuser postgres

でパスワード指定せずにログインできてしまった。


???となって少し調べてみたら、pg_hba.conf*1にデフォルトで以下のように設定されていて、この時localhostからpsqlでログインするときにはパスワードは不要になるようだった。ちょっと怖い。

# "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

ちなみに https://stackoverflow.com/questions/4328679/how-to-configure-postgresql-so-it-accepts-loginpassword-auth を参考にして、trustじゃなくてmd5を指定するとパスワード入力を必須にできた。しかし、ちゃんと調べていないので、本当にこの指定方法が正しかったのかはよく分からない。

*1:brewで入れた場合/usr/local/var/postgres/以下ににある