我正在管理一个包含许多模式的数据库。我在设置权限时遇到一些困难,并希望请求一些帮助。
我有一个名为 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无法创建视图。返回时会显示权限被拒绝错误。此外,当我创建视图时,她无法选择它们......我必须再次为该视图设置权限。
根据我的理解,视图被视为关于权限的表...如果一个人被授予对模式中所有表的某些权限,这也适用于视图。
我错过了什么?任何建议表示赞赏
答案 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;