为什么ALTER DEFAULT PRIVILEGES无法按预期工作?

时间:2019-05-21 12:03:57

标签: postgresql database-administration privileges

我有2个用户。 User1是写作者,并且是角色编写的成员,而User2是角色“读者”的成员。

读取者角色具有后续权限:

GRANT CONNECT ON DATABASE to reader
GRANT USAGE ON SCHEMA x TO reader

我希望读者能够从给定架构中读取/选择所有新表,但是当我使用后续字符串时,即使每个消息源都在说这是可行的方法,它对我也不起作用:

ALTER DEFAULT PRIVILEGES IN SCHEMA x GRANT SELECT ON TABLES TO reader;

但是通过使用该行,User2将不会获得对由User1 / writer角色创建的新表的任何许可。

使用:

ALTER DEFAULT PRIVILEGES FOR ROLE writer IN SCHEMA x GRANT SELECT ON TABLES TO reader;

也不起作用。我必须明确命名该表的所有者。要使其正常工作,我必须使用:

ALTER DEFAULT PRIVILEGES FOR ROLE User1 IN SCHEMA x GRANT SELECT ON TABLES TO reader;

我实际上不想使用,因为除User1之外可能还有其他用户打算将表发布到该模式中。

我不明白。难道我做错了什么?我有什么想念的吗?似乎没有多少人遇到这个问题。您能否帮助我,并告诉我为什么标准的最佳做法字符串不起作用,为什么我必须直接命名所有者?

0 个答案:

没有答案