postgres表权限不允许用户创建/选择视图

时间:2014-12-10 14:44:38

标签: sql postgresql

我正在管理一个包含许多模式的数据库。我在设置权限时遇到一些困难,并希望请求一些帮助。

我有一个名为 schemaA 的架构和一个group_role db_writer

我使用以下sql:

GRANT USAGE ON SCHEMA schemaA TO db_writer;
GRANT UPDATE, INSERT, SELECT, DELETE ON ALL TABLES IN SCHEMA schemaA TO db_writer;

但是,db_writer无法创建视图。返回时会显示权限被拒绝错误。此外,当我创建视图时,她无法选择它们......我必须再次为该视图设置权​​限。

根据我的理解,视图被视为关于权限的表...如果一个人被授予对模式中所有表的某些权限,这也适用于视图。

我错过了什么?任何建议表示赞赏

1 个答案:

答案 0 :(得分:4)

问题是USAGE不允许用户在数据库中创建对象。

尝试

GRANT USAGE, CREATE ON SCHEMA schemaA TO db_writer 

修改

新对象将获得默认权限,以便用户具有以后创建的对象的权限,您可以这样做:

ALTER DEFAULT PRIVILEGES IN SCHEMA schemaA GRANT UPDATE, INSERT, SELECT, DELETE ON TABLES TO db_writer;
ALTER DEFAULT PRIVILEGES IN SCHEMA schemaA GRANT SELECT ON TABLES TO db_reader;

Check this answer for more info