Postgres Grant SELECT&仅限用户的UPDATE权限

时间:2014-03-04 18:44:20

标签: database postgresql database-schema privileges

有人可以告诉我如何在postgresql上仅使用SELECT AND UPDATE权限授予用户(用户名:restricted_user)吗?我正在运行centos。

目前用户无法选择任何内容。我已经登录到phpPgMyAdmin,我似乎只能为每个表授予SELECT和UPDATE权限,但是我想对所有数据库中的所有表应用此规则。

感谢

1 个答案:

答案 0 :(得分:3)

您可以一次授予架构中的所有表:

GRANT SELECT, UPDATE ON ALL TABLES IN SCHEMA public TO restricted_user;

如果正在使用serial列或其他SEQUENCES,您还需要:

GRANT USAGE ON ALL SEQUENCES IN SCHEMA public TO restricted_user;

针对每个相关架构运行。 More in the fine manual for GRANT. 您还需要每个模式的USAGE权限:

GRANT USAGE ON SCHEMA public TO restricted_user;

如果您有另一个用户创建更多对象,您可能也希望默认情况下为将来的对象授予相同的权限。这就是DEFAULT PRIVILEGES进来的地方:

ALTER DEFAULT PRIVILEGES FOR creating_user IN SCHEMA public
GRANT SELECT, UPDATE ON TABLES TO restricted_user;

ALTER DEFAULT PRIVILEGES FOR creating_user IN SCHEMA public
GRANT USAGE ON SEQUENCES TO restricted_user;