为什么 ALTER DEFAULT PRIVILEGES 没有按预期工作?

Chr*_*ian 8 postgresql privileges database-administration

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

读者角色获得后续权限:

GRANT CONNECT ON DATABASE to reader
GRANT USAGE ON SCHEMA x TO reader
Run Code Online (Sandbox Code Playgroud)

我希望读者能够从给定的模式中读取/选择所有现有的和新的表,但使用

ALTER DEFAULT PRIVILEGES IN SCHEMA x GRANT SELECT ON TABLES TO reader;
Run Code Online (Sandbox Code Playgroud)

不起作用。用户 2 将不会获得对用户 1/写入者角色创建的新表的任何权限。

使用:

ALTER DEFAULT PRIVILEGES FOR ROLE writer IN SCHEMA x GRANT SELECT ON TABLES TO reader;
Run Code Online (Sandbox Code Playgroud)

也不行。我必须明确指出该表的所有者。为了解决这个问题我不得不使用:

ALTER DEFAULT PRIVILEGES FOR ROLE User1 IN SCHEMA x GRANT SELECT ON TABLES TO reader;
Run Code Online (Sandbox Code Playgroud)

我实际上不希望这样做,因为除了 User1 之外可能还有其他用户也会将表发布到该架构中。

我错过了什么吗?