LoginSignup
3
0

【PostgreSQL】pg_hba.confについて

Last updated at Posted at 2023-12-12

初めに

PostgreSQLではサーバーへのアクセスの際にクライアント認証が行われています。

  • クライアント認証とは
    例えば、クライアントが自身のIDとパスワードをサーバーに提供します。サーバーは、これらの情報がデータベースに格納されている情報と一致するかどうかを確認します。もし一致した場合、クライアントの身元が確認され、リクエストされたサービスへのアクセスが許可されます。

PostgreSQLではpg_hba.conf1で管理しています。

pg_hba.confとは

pg_hba.confの中身は以下のようになっている。

pg_hba.conf
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     md5
host    replication     all             127.0.0.1/32            ident
host    replication     all             ::1/128                 ident

特徴としては以下の通り

  • 1行につき1つのレコード
  • スペース区切り
  • #以降の文字は無視される
  • 最初に条件を満たした認証方式で認証を行う
  • 条件を満たさなかった場合に、認証は拒否される

また、書く順番としては、対象アドレスの範囲が狭いものから、認証方式の条件が緩いレコードを書きます。

認証方式はいくつかあります。

設定値 種別 説明
trust 無条件 無条件で許可
reject 無条件 無条件で拒否
md5 パスワード認証 md5暗号化によるパスワード認証
password パスワード認証 平文のパスワード認証
scram-sha-256 パスワード認証 scram-sha-256暗号化による認証
ident Ident認証 クライアントのマシン上の「Identification Protocol、RFC1413」サービスに依存

PostgreSQL13まではmd5が
PostgreSQL14以降ではscram-sha-256がデフォルト暗号化手法となっている。

まとめ

DBなので接続元は基本的には限定的なはずなのでpg_hba.confで明確に設定しておくことは大事ですね。

  1. hbaとは?
    host-based authenticationの略。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0