9.2.3 と 9.2.4 での dblink の動作の違いを観察しています。同一の postgres.conf と pg_hba.conf を持つ 2 つのサーバーがあります。ただし、バージョン 9.2.3 に 1 つ、9.2.4 に 1 つ
9.2.3
pg_hba.conf には
local all dblinkuser trust
次に、通常のユーザーを使用してデータベースに接続します
theater_map=# select dblink_connect('dbname=TheaterDB user=dblinkuser password=dbl123');
dblink_connect
----------------
OK
(1 row)
接続に成功。
9.2.4
私のpg_hba.confには上記と同じエントリがあります
theater_map=> select dblink_connect('dbname=TheaterDB user=dblinkuser password=dbl123');
ERROR: password is required
DETAIL: Non-superuser cannot connect if the server does not request a password.
HINT: Target server's authentication method must be changed.
9.2.4 で pg_hba.conf を次のように変更します。
local all dblinkuser md5
そしてpostgresを再起動します
theater_map=> select dblink_connect('dbname=TheaterDB user=dblinkuser password=dbl123');
dblink_connect
----------------
OK
(1 row)
バージョン 9.2.3 と 9.2.4 の間の変更ログを確認しましたが、詳細が見つかりませんでした。
注: 9.2.3 で認証方法を trust から md5 に変更しても違いはなく、引き続き機能します。