Postgres dblink: Getting "[2F003] ERROR: password is required Detail: Non-superusers must provide a



当我尝试运行以下查询时,我得到以下错误消息,因此我的dblink查询失败。所有的主机,角色,网络连接和用户名都已经正确设置,但它不能工作。

select abc from dblink(
'port=5439 host=some_dbhost.mycompany.com dbname=my_db username=my_user password=<...>',
'select 1 as x') as t1 (abc int);

[2F003] ERROR: password is required详细信息:非超级用户必须在连接字符串中提供密码。

不,有密码。这是怎么呢

这个错误信息完全是误导。

真正的错误是用户名被错误地指定为username

正确的形式指定为user(而db指定为dbname,很烦人!)

修复方法:

select abc from dblink(
'port=5439 host=some_dbhost.mycompany.com dbname=my_db user=my_user password=<...>',
'select 1 as x') as t1 (abc int);

所以错误应该读作:

  • argument user missing
  • unknown argument username specified

而不是这个熬夜到凌晨3点对着天尖叫的事情。

相关内容

  • 没有找到相关文章

最新更新