为后端服务器创建受限的PostgreSQL角色

laik7k3q  于 6个月前  发布在  PostgreSQL
关注(0)|答案(1)|浏览(55)

我尝试在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;

字符串

ulmd4ohb

ulmd4ohb1#

感谢@Adrian Klaver的解决方案:

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;

字符串
用户不能创建、修改、删除数据库、表或表中的列。

相关问题