为后端服务器创建有限权限 PostgreSQL 角色

问题描述 投票:0回答:1

我正在尝试在 postgres 中为后端服务器创建一个角色,出于安全原因,我想限制 backend_user 权限。用户只能访问database_x和公共模式,并且可以在database_x中的所有表中执行以下操作:

  • 添加/创建行
  • 修改/更新一行
  • 删除一行

用户不能执行以下操作

  • 创建新的数据库、表或表中的列
  • 删除数据库、表或表中的列
  • 修改数据库、表或表中的列(例如修改名称)

我已遵循this,但所有尝试均未成功。

编辑:

CREATE user userx WITH ENCRYPTED PASSWORD 'mypass';
GRANT ALL PRIVILEGES ON DATABASE mydb TO userx;
GRANT ALL PRIVILEGES ON SCHEMA public TO userx;
grant all PRIVILEGES on all tables in schema public to userx;

REVOKE drop, alter ON ALL TABLES IN SCHEMA public FROM userx;
REVOKE alter, create, drop ON DATABASE mydb FROM userx;
postgresql security privileges access-control
1个回答
0
投票

感谢@Adrian Kalver,有效的解决方案:

CREATE user userx WITH ENCRYPTED password 'password';

GRANT CONNECT ON DATABASE mydb TO userx;
GRANT USAGE ON SCHEMA public TO userx;
grant SELECT, INSERT, UPDATE, DELETE on all tables in schema public to userx;

用户无法创建、修改、删除数据库、表或表中的列。

© www.soinside.com 2019 - 2024. All rights reserved.