DROP USER - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

DROP USER

从数据库中删除用户。可以使用一条 DROP USER 命令删除多个用户。您必须是数据库超级用户或具有 DROP USER 权限才能运行此命令。

语法

DROP USER [ IF EXISTS ] name [, ... ]

参数

IF EXISTS

一个子句,指示如果指定的用户不存在,则命令不应进行任何更改,并返回一条指示用户不存在的消息,而不是终止并显示错误。

此子句在编写脚本时很有用,可使在 DROP USER 针对不存在的用户运行时脚本不会失败。

名称

要删除的用户的名称。您可以使用逗号来分隔各个用户名,从而指定多个用户。

使用说明

您无法删除名为 rdsdb 的用户或数据库的管理员用户(通常名为 awsuseradmin)。

如果用户拥有任何数据库对象(例如架构、数据库、表或视图),或者用户具有对数据库、表、列或组的任何权限,则您不能删除该用户。如果您试图删除此类用户,则会收到以下错误之一。

ERROR: user "username" can't be dropped because the user owns some object [SQL State=55006] ERROR: user "username" can't be dropped because the user has a privilege on some object [SQL State=55006]

有关如何查找数据库用户拥有的对象的详细说明,请参阅《知识中心》中的如何解决 Amazon Redshift 中的“无法删除用户”错误?

注意

Amazon Redshift 在删除用户前只检查当前数据库。如果用户拥有数据库对象或者对另一数据库中的对象具有任何权限,DROP USER 不会返回错误。如果您删除的用户拥有另一个数据库中的对象,这些对象的所有者将更改为“未知”。

如果用户拥有对象,请先删除对象或者将其所有权更改为其他用户,然后再删除原始用户。如果用户具有对象的权限,请先撤消权限,然后再删除用户。以下示例说明先删除对象、更改所有权、撤消权限然后再删除用户的过程。

drop database dwdatabase; alter schema dw owner to dwadmin; revoke all on table dwtable from dwuser; drop user dwuser;

示例

以下示例删除名为 paulo 的用户:

drop user paulo;

以下示例删除两个用户,即 paulo 和 martha:

drop user paulo, martha;

在以下示例中,如果用户 paulo 存在,则删除该用户;如果不存在,则不执行任何操作并返回一条消息:

drop user if exists paulo;