postgres非管理员用户的外部数据包装器

时间:2017-04-17 19:45:15

标签: postgresql amazon-rds foreign-data-wrapper

我创建了一个外部数据包装器并为2个用户创建了用户映射,一个是admin,另一个只有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

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

当我查询这个&#34时选择*,从pg_foreign_table中选择*;" 我看到了所有的外国赌桌。

我尝试了以下内容:

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

任何想法。

1 个答案:

答案 0 :(得分:1)

我能够解决问题,以下是步骤:

  1. 在本地数据库上创建只读用户
  2. 在远程数据库上创建只读用户
  3. 为只读用户创建fdw和用户映射
  4. 在远程和本地数据库上授予使用权限(我在本地遗漏了这个)
  5. 将本地和远程数据库上的select privs授予只读用户。