我正在尝试在 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;
感谢@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;
用户无法创建、修改、删除数据库、表或表中的列。