我创建了一个外国数据包装器,并为2个用户创建了一个用户映射,一个是管理员,另一个只能阅读对表。当我尝试使用ReadOnly用户查询时,我会收到一个错误:
ERROR: permission denied for schema testing LINE 1: SELECT * FROM testing.bldg ^ ********** Error ********** ERROR: permission denied for schema testing SQL state: 42501 Character: 15
这是我的设置:Postgres 9.6.1在Amazon RDS中,两个DBS均为同一AWS RDS实例的一部分。当我使用ReadOnly用户直接连接到远程数据库时,我可以查询表,只有在使用FDW时才发生问题。
。当我查询此"从pg_foreign_table;"查询此"选择 *"时,作为阅读的使用。我看到所有外国桌子。
我尝试了以下内容:
grant usage on schema ...
grant select on table...
GRANT USAGE ON FOREIGN SERVER ...
任何想法。
我能够解决问题,以下是:
- 在本地DB上创建可读的用户
- 在远程DB上创建ReadOnly用户
- 为ReadOnly用户创建FDW和用户映射
- 授予远程和本地数据库的使用私有(我在本地错过了(
- 授予本地和远程数据库上的选择私有给可读的用户。