【PostgreSQL】pg_hba.confのmethodに設定する値

2021年2月22日PostgreSQLその他

pg_hba.confの中身

pg_hba.confの設定値のうちでMETHODについて、

恥ずかしながらよくわからなかったので、調べてまとめました。

# pg_hba.confの設定値(METHOD)について
# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all             all             127.0.0.1/32            md5 

 

METHODに設定できる値

METHODとは、「端末が接続してくる際の認証方式」です。

 

METHODは次の値から指定できます。

trust , reject ,  md5 , crypt , password , krb5 , ident , pam 

それぞれについては以下の意味があります。

※ 困ったりよくわからない場合は、「md5」を選んでおきましょう。

 

trust … 全てのホストから、全てのデータベースへの接続を許可する(パスワードなし)。

# 全てのホストから、全てのデータベースへの接続を許可する
host all all 0.0.0.0/0 trust

 

reject … 接続を拒否する。特定のIP等からの接続を拒否する場合に使用する。

# rejectの例
host   all   192.168.0.0   255.255.0.0   trust   # 接続を許可するネットワーク
host   all   0.0.0.0       0.0.0.0       reject   # 上以外は接続を拒否する

 

md5 … 接続に暗号化したパスワードを使う。パスワードはMD5暗号化を使用する。

crypt … 接続にパスワードを要求する。パスワードはcrypt-暗号化を使用する

password … 接続にパスワードを要求する。パスワードは暗号化されず平文で送信する。

krb5 … Kerberos認証を使う場合に指定します。

ident …  Ident認証を使う場合に指定します。

pam … PAM認証を使う場合に指定します。

 

追記(2021/1/11)

PostgreSQL13から、デフォルト値が「scram-sha-256」というものになっていました。

これは、以前からある md5 認証よりも安全なものですが、

ただし古いバージョンのPostgreSQLでは使用できない点が注意とのことです。ご参考まで。