PostgreSQLのドキュメントによると:
ドット(。)で始まるホスト名の指定は、実際のホスト名のサフィックスと一致します。したがって、.example.comはfoo.example.comに一致します(example.comだけではありません)。
だから私はこの行をpg_hba.conf
と再起動したPostgreSQL:
hostssl market_data market_data_access .horsholm.dk md5
次に、データベースへの接続を試みます。
psql "postgresql://market_data_access@<server-IP>:5433/market_data?sslmode=require"
パスワードプロンプトの代わりに、これを取得します。
psql: FATAL: no pg_hba.conf entry for Host "195.249.206.131", user "market_data_access", database "market_data", SSL on
確認のために、エラーメッセージにリストされているIPアドレスの逆DNSルックアップを行います。
$ Host 195.249.206.131
131.206.249.195.in-addr.arpa is an alias for 131.129-190.206.249.195.in-addr.arpa.
131.129-190.206.249.195.in-addr.arpa domain name pointer kommune.horsholm.dk.
$
何が悪いのですか?
195.249.206.131
がワイルドカードと一致するkommune.horsholm.dk
に解決されるだけでは不十分です。
それを確認した後、Postgresはkommune.horsholm.dk
を解決しようとし、195.249.206.131
に解決されないことを検出します(この特定のケースではまったく解決されないため)。
$ Host kommune.horsholm.dk
Host kommune.horsholm.dk not found: 3(NXDOMAIN)
ホスト名が指定されている場合(IPアドレス範囲または特殊なキーワードでないものはすべてホスト名として扱われます)、その名前はクライアントのIPアドレスの逆名前解決の結果と比較されます(たとえば、逆DNS DNSが使用されている場合、ルックアップ)。ホスト名の比較では、大文字と小文字は区別されません。一致する場合、ホスト名に対して前方名前解決(DNSの前方参照など)が実行され、解決されるアドレスのいずれかがクライアントのIPアドレスと等しいかどうかが確認されます。 両方向が一致する場合、エントリは一致すると見なされます