Postgres:即使授予了权限,架构的权限也被拒绝

kid*_*n01 4 postgresql grant

我正在运行 Postgres 10.4 并且目前感到困惑,因为我似乎无法向另一个角色授予对架构的访问权限。

我想做的事:

我有一个具有一个架构的角色,并希望从另一个角色访问该架构及其表。所以我做了通常的(与其他模式一起工作的):

grant usage on schema myschema to newuser;

grant select on all tables in schema myschema to newuser;
Run Code Online (Sandbox Code Playgroud)

这两个语句都是作为模式的所有者运行的。这样做时我没有遇到任何错误。

当我以新用户身份登录并尝试选择一些数据时:

select * from myschema.table;
Run Code Online (Sandbox Code Playgroud)

我收到错误:

SQL Error [42501]: ERROR: permission denied for schema myschema
Run Code Online (Sandbox Code Playgroud)

我可以看到新用户在“information_schema.role_table_grants”表中具有正确的权限

它还与另一个角色和另一个模式一起工作。我一窍不通。

Rea*_*_20 5

第1步
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA name_schema TO name_user;

第2步
GRANT USAGE ON SCHEMA name_schema TO name_user;


kid*_*n01 4

它绝对可以像我的问题中发布的那样工作,问题是我没有使用架构的所有者。

因此,请始终确保您授予所有者角色对架构的访问权限。