Amazon Redshift
数据库开发人员指南 (API Version 2012-12-01)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

DROP USER

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

语法

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

参数

IF EXISTS

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

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

name

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

使用说明

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

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

注意

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

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

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

示例

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

Copy
drop user danny;

以下示例删除两个用户账户:danny 和 billybob:

Copy
drop user danny, billybob;

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

Copy
drop user if exists danny;

本页内容: