【问题标题】:Postgres Grant SELECT & UPDATE privilege ONLY to a userPostgres 仅向用户授予 SELECT 和 UPDATE 权限
【发布时间】:2014-03-04 18:44:20
【问题描述】:
谁能告诉我如何授予用户(用户名:restricted_user)在 postgresql 上只有 SELECT 和 UPDATE 权限?我正在运行centos。
目前用户无法选择任何内容。我已经登录到 phpPgMyAdmin,我似乎只能为有效的用户授予每个表的 SELECT 和 UPDATE 权限,但我想将此规则应用于所有数据库中的所有表。
谢谢
【问题讨论】:
标签:
database
postgresql
database-schema
privileges
【解决方案1】:
您可以一次授予架构中的所有表:
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;