我观察到9.2.3和9.2.4之间dblink行为的差异。我有两个服务器具有相同的postgres.conf和pg_hba.conf。但是在版本9.2.3上有一个,在9.2.4上有一个
pg_hba.conf
local all dblinkuser trust
然后我使用任何普通用户连接到数据库
theater_map=# select dblink_connect('dbname=TheaterDB user=dblinkuser password=dbl123');
dblink_connect
----------------
OK
(1 row)
我的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上将auth方法从trust更改为md5没有任何区别,仍然有效。