PostgreSQL和GRANT语句

时间:2013-02-08 14:19:54

标签: postgresql

我的PostgreSQL服务器(V9.2)上有n个模式,n个用户(每个模式1个用户)。我只想将SELECT, INSERT, UPDATE, DELETE, EXECUTE的{​​{1}}权限分配给user1schema1分配给user2schema2分配给usern在每张桌子上。

我不能用这句话来做到这一点:

scheman

因为条款GRANT SELECT, INSERT, UPDATE, DELETE, EXECUTE ON SCHEMA schema 1 to user1 仅适用于...ON SCHEMACREATE权限。

那么将每个表的所有权限分配给相关用户的最快方法是什么?我希望唯一的方法是不要按USAGE ...

执行一个GRANT语句

2 个答案:

答案 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,您只需批量更改架构中所有对象的权限。

http://www.pgadmin.org/docs/1.4/grantwiz.html