PostgreSQL – 如何快速删除具有现有权限的用户
我试图让我正在使用的应用程序受限制的数据库用户,我想放下我正在使用的Postgres数据库用户进行实验。 有什么办法可以放弃用户,而不必先手动撤销所有的权限,或者撤销用户拥有的所有权限?
怎么样
DROP USER <username>
这实际上是DROP ROLE
的别名。
您必须明确地删除与该用户关联的所有权限,并将其所有权移至其他angular色(或删除该对象)。
这最好通过
REASSIGN OWNED BY <olduser> TO <newuser>
和
DROP OWNED BY <olduser>
后者将删除授予用户的任何特权。
查看postgres文档的DROP ROLE和更详细的描述 。
加成:
很明显,试图通过使用这里提到的命令来删除一个用户,只有当你连接到原始GRANTS所在的同一个数据库时才能执行它们,如下所述:
另请注意,如果您已明确授予:
CONNECT ON DATABASE xxx TO GROUP
,
您将需要从DROP OWNED BY中单独撤销,使用:
REVOKE CONNECT ON DATABASE xxx FROM GROUP
我面临同样的问题,现在find了解决的办法。 首先你必须删除你想要删除的用户的数据库。 那么用户可以很容易地删除。
我创build了一个名为“msf”的用户,并挣扎了一段时间来删除用户并重新创build它。 我按照下面的步骤,并成功。
1)删除数据库
dropdb msf
2)放弃用户
dropuser msf
现在我得到了用户成功下降。