我是 PostgreSQL 的新手,想看看这是否可行。
有两个超级用户,'postgres'(PostgreSQL 的默认超级用户)和 'super2'。
超级用户“super2”创建了一个名为“Movies”的新数据库,并成为它的所有者。
是否可以限制超级用户“postgres”访问数据库“电影”,以便只有超级用户“super2”才能访问它,因为他是数据库的所有者。
如果可能,那么如何实现呢?
法郎是完全正确的。超级用户就是这个意思。他们无所不能。他们可以做任何事情,包括将额外的代码加载到数据库中,直接修改磁盘上的表等。有关更多信息,请参阅CREATE ROLE和有关客户端身份验证的文档。
如果您不信任他们,请不要授予他们超级用户权限。在这种情况下,听起来您应该完成 aCREATE DATABASE movies WITH OWNER the_other_user并为他们提供正常的非超级用户登录。或者,如果他们需要创建自己的数据库,您可以授予他们CREATEDB权限。
限制超级用户的唯一方法是直接更改 PostgreSQL 中的 C 代码。即便如此,您也可能会浪费时间,因为坚定的用户ProcessUtility_hook如果拥有超级用户访问权限,就可以绕过过滤器等限制。
删除他们的超级用户访问权限。除非他们有先见之明,以某种方式后门您的系统,让他们重新获得访问权限(不太可能,而且不是微不足道的),否则您应该没问题。
ALTER USER the_user WITH NOSUPERUSER;
Run Code Online (Sandbox Code Playgroud)
CREATEDB如果您希望他们能够创建数据库,您可以添加权限。
| 归档时间: |
|
| 查看次数: |
2634 次 |
| 最近记录: |