源数据存储在数据库keys的public模式下的keys表中(参考pg文档: https://www.postgresql.org/docs/current/postgres-fdw.html)。
参考用户/模式/数据库是vids/public/vids。
创建用户映射
尝试在连接到vids数据库时以vids身份访问外部表:
create table keys (
id varchar not null,
keyname varchar not null,
created timestamp default current_timestamp not null,
modified timestamp default current_timestamp not null
);
参考用户/模式/数据库是vids/public/vids。
- 建立服务器连接
CREATE SERVER keys
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (host '1.2.3.4', port '5432', dbname 'keys');
创建用户映射
CREATE USER MAPPING FOR vids
SERVER keys
OPTIONS (user 'keys', password 'keys');
- 创建表格映射
create foreign table keys (
id varchar not null,
keyname varchar not null,
created timestamp default current_timestamp not null,
modified timestamp default current_timestamp not null
) server keys options (schema_name 'public', table_name 'keys');
尝试在连接到vids数据库时以vids身份访问外部表:
vids=> select * from keys;
ERROR: permission denied for foreign table keys
我不明白,既然用户keys是外部数据库中keys表的所有者,那么这里应该做什么?
clip
创建了一个用户映射,但似乎在其他地方并没有使用该用户。 - jjanesvids
,而且vids
没有权限访问它。因此,它从来没有足够的进展来确定keys
是否可以访问外部的keys
。 - jjanesclip
是一个打字错误,已经更正为vids
。 - WestCoastProjects