1

我创建了一个外部数据包装器并为 2 个用户创建了用户映射,一个是管理员,另一个只有对表的只读访问权限。当我尝试使用只读用户进行查询时,出现错误:

ERROR: permission denied for schema testing LINE 1: SELECT * FROM testing.bldg ^ ********** Error ********** ERROR: permission denied for schema testing SQL state: 42501 Character: 15

这是我的设置:Amazon RDS 中的 Postgres 9.6.1,两个数据库都是同一个 AWS RDS 实例的一部分。当我使用只读用户直接连接到远程数据库时,我能够查询表,问题仅在使用 fdw 时发生。

作为我查询此“select * from pg_foreign_table;”时的只读用途 我看到所有的外国桌子。

我尝试了以下方法:

grant usage on schema ...
grant select on table...
GRANT USAGE ON FOREIGN SERVER ...

有任何想法吗。

4

1 回答 1

1

I was able to resolve the issue, here are the steps:

  1. create readonly user on local DB
  2. create readonly user on remote DB
  3. create fdw and user mapping for readonly user
  4. grant usage privs on remote and local db (I was missing this on local)
  5. grant select privs on local and remote db to readonly user.
于 2017-04-18T16:19:36.250 回答