我正在运行Postgres 10.4,目前困惑不解,因为我似乎无法将模式的访问权限授予其他角色。
我想做什么:
我在一个模式中有一个角色,并且想从另一个角色访问该模式及其表。因此,我做了平常的工作(与其他模式一起工作):
grant usage on schema myschema to newuser;
grant select on all tables in schema myschema to newuser;
这两个语句均以架构所有者的身份运行。这样做时我没有遇到任何错误。
当我以新用户身份登录并尝试选择一些数据时:
select * from myschema.table;
我得到了错误:
SQL Error [42501]: ERROR: permission denied for schema myschema
我可以看到表“ information_schema.role_table_grants”中的新用户具有正确的特权
它还与另一个角色和另一个架构一起工作。我一无所知。
答案 0 :(得分:1)
它确实可以在我的问题中发布,但问题是我没有使用架构的所有者。
因此,请始终确保您授予所有者角色对架构的访问权限。
答案 1 :(得分:0)
第1步
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA name_schema TO name_user;
第2步
GRANT USAGE ON SCHEMA name_schema TO name_user;