我的PostgreSQL服务器(V9.2)上有n个模式,n个用户(每个模式1个用户)。我只想将SELECT, INSERT, UPDATE, DELETE, EXECUTE
的{{1}}权限分配给user1
,schema1
分配给user2
,schema2
分配给usern
在每张桌子上。
我不能用这句话来做到这一点:
scheman
因为条款GRANT SELECT, INSERT, UPDATE, DELETE, EXECUTE ON SCHEMA schema 1 to user1
仅适用于...ON SCHEMA
和CREATE
权限。
那么将每个表的所有权限分配给相关用户的最快方法是什么?我希望唯一的方法是不要按USAGE
...
GRANT
语句
答案 0 :(得分:2)
我认为您正在寻找“在SCHEMA中的所有表格”选项:
GRANT SELECT, INSERT, UPDATE, DELETE, EXECUTE ON ALL TABLES IN SCHEMA schema_1 to user1;
有关详细信息,请参阅手册:http://www.postgresql.org/docs/current/static/sql-grant.html
答案 1 :(得分:0)
虽然这个问题有很多不同的解决方案(包括手动修改授权表),但我个人建议使用工具来简化这个问题。
例如,使用pgAdmin3,您只需批量更改架构中所有对象的权限。