Postgres 仅向用户授予 SELECT 和 UPDATE 权限

Joh*_*ohn 2 database postgresql privileges database-schema

谁能告诉我如何在 postgresql 上授予用户(用户名:restricted_user)仅具有 SELECT AND UPDATE 权限?我运行的是centos。

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

谢谢

Erw*_*ter 7

您可以一次授予模式中的所有表:

GRANT SELECT, UPDATE ON ALL TABLES IN SCHEMA public TO restricted_user;
Run Code Online (Sandbox Code Playgroud)

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

GRANT USAGE ON ALL SEQUENCES IN SCHEMA public TO restricted_user;
Run Code Online (Sandbox Code Playgroud)

为每个相关模式运行。更多内容请参见 的精美手册GRANT 您还需要USAGE每个模式的权限:

GRANT USAGE ON SCHEMA public TO restricted_user;
Run Code Online (Sandbox Code Playgroud)

如果您有另一个用户创建更多对象,您可能也希望默认情况下为未来的对象授予相同的权限。这就是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;
Run Code Online (Sandbox Code Playgroud)