RDS Postgres 版本迁移 10.6 -> 11.1后出现错误:“42501 ERROR: permission denied for schema public”

0

【以下的问题经过翻译处理】 当我们将 RDS PostgreSQL实例版本从10.6迁移到11.1后, 出现一个问题: 包括master在内的所有 Postgres role都无法访问public schema中的对象。

select * from public.spatial_ref_sys;

出现错误 42501 ERROR: permission denied for schema public

以 master 身份执行以下查询,显示创建和使用权限为 false:

WITH "names"("name") AS (

  SELECT n.nspname AS "name"

    FROM pg_catalog.pg_namespace n

      WHERE n.nspname = 'public'

) SELECT "name",

  pg_catalog.has_schema_privilege(current_user, "name", 'CREATE') AS "create",

  pg_catalog.has_schema_privilege(current_user, "name", 'USAGE') AS "usage"

    FROM "names";

测试以下语句

GRANT ALL ON DATABASE dwh TO master;

可以执行,无报错. 但是执行以下语句

GRANT ALL ON SCHEMA public TO master;

会报Permission Denied错误.

如何解决这个问题?

profile picture
EXPERTE
gefragt vor 8 Monaten64 Aufrufe
1 Antwort
0

【以下的回答经过翻译处理】 你好,

请尝试使用具有rds_superuser权限Role运行以下命令

ALTER SCHEMA public OWNER to master;

希望能解决你的问题

Thanks! John H

Edited by: awsatjohnh on Apr 12, 2019 6:15 PM

profile picture
EXPERTE
beantwortet vor 8 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen