PostgreSQL – 如何快速删除具有现有权限的用户

我试图让我正在使用的应用程序受限制的数据库用户,我想放下我正在使用的Postgres数据库用户进行实验。 有什么办法可以放弃用户,而不必先手动撤销所有的权限,或者撤销用户拥有的所有权限?

怎么样

DROP USER <username> 

这实际上是DROP ROLE的别名。

您必须明确地删除与该用户关联的所有权限,并将其所有权移至其他angular色(或删除该对象)。

这最好通过

 REASSIGN OWNED BY <olduser> TO <newuser> 

 DROP OWNED BY <olduser> 

后者将删除授予用户的任何特权。

查看postgres文档的DROP ROLE和更详细的描述 。

加成:

很明显,试图通过使用这里提到的命令来删除一个用户,只有当你连接到原始GRANTS所在的同一个数据库时才能执行它们,如下所述:

https://www.postgresql.org/message-id/83894A1821034948BA27FE4DAA47427928F7C29922%40apde03.APD.Satcom.Local

另请注意,如果您已明确授予:

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 

现在我得到了用户成功下降。