有人可以告诉我如何在postgresql上仅使用SELECT AND UPDATE权限授予用户(用户名:restricted_user)吗?我正在运行centos。
目前用户无法选择任何内容。我已经登录到phpPgMyAdmin,我似乎只能为每个表授予SELECT和UPDATE权限,但是我想对所有数据库中的所有表应用此规则。
感谢
答案 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;