mit*_*mit 4 postgresql permissions configuration
你会使用什么sql语句(用户postgres将执行),这样postgres用户就不可能user1
删除(drop)数据库?
或者我可以在某些配置文件中添加规则吗?
在 PostgreSQL 中,只有数据库的所有者才能删除数据库。(超级用户可以删除数据库,但这是另一个问题。)因此,更改所有者是防止 user1 删除任何数据库的最直接方法。
使用ALTER DATABASE修复该问题。
ALTER DATABASE name OWNER TO new_owner
Run Code Online (Sandbox Code Playgroud)
要更改所有者,您必须拥有该数据库,并且是新拥有角色的直接或间接成员,并且您必须具有 CREATEDB 权限。(请注意,超级用户自动拥有所有这些权限。)
要将特定权限重新授予 user1,请使用GRANT。您可能正在寻找类似的东西
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA schema_name TO user1;
Run Code Online (Sandbox Code Playgroud)
但请先阅读 GRANT 的文档。您可能需要WITH GRANT OPTION、序列权限、低于ALL PRIVILEGES 的权限等等。