问题描述
我根据文档使用dblink_connect建立了与外部数据库的连接:
CREATE SERVER fdtest FOREIGN DATA WRAPPER dblink_fdw OPTIONS (hostaddr '127.0.0.1',dbname 'foreign_test_db');
CREATE USER test_user WITH PASSWORD 'secret';
CREATE USER MAPPING FOR test_user SERVER fdtest OPTIONS (user 'test_user',password 'secret');
GRANT USAGE ON FOREIGN SERVER fdtest TO regress_dblink_user;
GRANT SELECT ON TABLE foo TO test_user;
\c - regress_dblink_user
SELECT dblink_connect('myconn','fdtest');
SELECT * FROM dblink('myconn','SELECT * FROM foo') AS t(a int,b text,c text[]);
最后的“ GRANT SELECT”似乎暗示着,如果要向fdtest外来数据包装器上的表foo授予对本地用户test_user的选择权限。但是,我如何解释此命令是它授予test_user在本地表foo(不存在)上选择的权限。不出所料,当我运行此命令时,我得到一个错误:
ERROR: relation "foo" does not exist
我很想知道如何真正做到这一点。我希望能够限制本地用户只能从外部数据包装器访问某些表。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)