无法使用Postgres FDW访问外部表

3

我在 Postgres 10 中设置了一个外部表。角色 "role1" 已被授予了使用由 postgres 超级用户设置的外部服务器 (fs) 的权限。

我使用导入模式命令导入了该表:

IMPORT FOREIGN SCHEMA f_schema LIMIT TO (my_fdw_table) FROM fs INTO ls;

这很好。

然而,当我尝试查询表格时,我得到以下错误:

SELECT * FROM my_fdw_table LIMIT 1;
ERROR:  permission denied for view my_fdw_table
CONTEXT:  remote SQL command: ...

我的理解是,FDW应该同等对待视图和表。

2个回答

2

看起来你在本地用户和外部服务器的用户映射中使用的远程用户没有足够的权限访问该表(或包含它的架构)。


0

用户“role1”应该为自己创建用户映射,例如:

CREATE USER MAPPING FOR role1 SERVER fs OPTIONS (USER 'role1', PASSWORD 'password1');
IMPORT FOREIGN SCHEMA f_schema LIMIT TO (my_fdw_table) FROM SERVER fs INTO ls;

此外,如果"role1"不是数据库的所有者,则应从其所有者获取访问权限:
GRANT USAGE ON SCHEMA ls TO role1;

假设ls是本地模式。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接