https://www.sraoss.co.jp/PostgreSQL/Manual/document/11/auth-password.html
scram-sha-256
scram-sha-256
方式は、RFC 7677に記述された方法でSCRAM-SHA-256認証を実行します。 これはチャレンジ/レスポンス方式のひとつであり、信頼できない接続におけるパスワードの漏洩を防ぎ、安全だと見なされる暗号学的ハッシュ形式でパスワードをサーバに格納するのを支援します。
これは、現在実装されている認証方式の中では最も安全ですが、古いクライアントライブラリではサポートされていません。
PostgreSQL にリモートホストから安全に接続するには
https://qiita.com/tom-sato/items/d5f722fd02ed76db5440
例20.1 pg_hba.confの項目の例
https://www.postgresql.jp/document/10/html/auth-pg-hba-conf.html
# ローカルシステム上の全てのユーザが、任意のデータベースに
# 任意のデータベースユーザ名でUnixドメインソケットを使用して接続することを許可
# (ローカル接続ではデフォルト)。
#
# TYPE DATABASE USER ADDRESS METHOD
local all all trust
# 上記と同じことをローカルループバックのTCP/IP接続を使って行なう。
#
# TYPE DATABASE USER ADDRESS METHOD
host all all 127.0.0.1/32 trust
# 上記と同じだが、独立したネットマスク列を使用する
#
# TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD
host all all 127.0.0.1 255.255.255.255 trust
# IPv6で上記と同じことを行なう。
#
# TYPE DATABASE USER ADDRESS METHOD
host all all ::1/128 trust
# ホスト名を使用して上記と同じことを行なう(通常はIPv4とIPv6の両方をカバーします)。
#
# TYPE DATABASE USER ADDRESS METHOD
host all all localhost trust
# IPアドレス192.168.93.xを持つ全てのホストの全てのユーザが、
# identがその接続について報告するのと同じユーザ名(典型的にはオペレーティングシステムのユーザ名)で
# データベース「postgres」へ接続することを許可。
#
# TYPE DATABASE USER ADDRESS METHOD
host postgres all 192.168.93.0/24 ident
# ユーザのパスワードが正しく入力された場合、
# ホスト192.168.12.10からのどのようなユーザでもデータベース「postgres」へ接続することを許可。
#
# TYPE DATABASE USER ADDRESS METHOD
host postgres all 192.168.12.10/32 scram-sha-256
# ユーザのパスワードが正しく指定された場合は、
# example.comドメイン内のホストからの、どのユーザからのデータベース接続も許可する。
#
# Require SCRAM authentication for most users, but make an exception
# for user 'mike', who uses an older client that doesn't support SCRAM
# authentication.
#
# TYPE DATABASE USER ADDRESS METHOD
host all mike .example.com md5
host all all .example.com scram-sha-256
# 先行する「host」行がなければ、これら2行によって192.168.54.1からの接続
# の試みを全て拒否(この項目が最初に照合されるため)。
# ただし、インターネット上の他の全ての場所からのGSSAPI接続は許可。
# ゼロマスクは、ホストIPアドレスのビットが考慮されずに
# どのホストでも照合できることになる。
#
# TYPE DATABASE USER ADDRESS METHOD
host all all 192.168.54.1/32 reject
host all all 0.0.0.0/0 gss
# 192.168.x.xホストからのユーザが、ident検査に通る場合、
# どのデータベースにでも接続を許可。もし、例えば、identが「bryanh」と認定し
# 「bryanh」がPostgreSQLのユーザ「guest1」として
# 接続要求を出す場合、「bryanh」は「guest1」として接続が許可されるという
# マップ「omicron」に対する記載事項がpg_ident.confにあれば接続を許可。
#
# TYPE DATABASE USER ADDRESS METHOD
host all all 192.168.0.0/16 ident map=omicron
# ローカル接続に対して、以下のたった3行しか記載がない場合、ローカルユーザは
# 自分のデータベース(データベースユーザ名と同じ名前のデータベース)にのみ接続許可。
# ただし管理者とロール「support」のメンバは全てのデータベースに接続可能。
# $PGDATA/adminsファイルは管理者のリストを含む。
# 全ての場合にパスワードが必要。
#
# TYPE DATABASE USER ADDRESS METHOD
local sameuser all md5
local all @admins md5
local all +support md5
# 上記の最後の2行は1つの行にまとめることが可能。
local all @admins,+support md5
# データベースの列にはリストやファイル名も使用できる。
local db1,db2,@demodbs all md5