メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012年12月1日)

DROP USER

データベースからユーザーを削除します。1 つの DROP USER コマンドで複数のユーザーを削除できます。このコマンドを実行するには、データベースのスーパーユーザー権限を持つ必要があります。

構文

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

Parameters

IF EXISTS

指定されたユーザーアカウントが存在しない場合、コマンドはエラーで終了するのではなく、何も変更しないで、ユーザーアカウントが存在しないというメッセージを返すことを示す句。

この句は、存在しないユーザーアカウントに対して DROP USER を実行してもスクリプトが失敗しないため、スクリプトを作成する際に便利です。

name

削除するユーザーアカウントの名前。各アカウント名をコンマで区切って、複数のユーザーアカウントを指定できます。

使用に関する注意事項

スキーマ、データベース、テーブル、ビューなどのデータベースオブジェクトを所有するユーザーと、テーブル、データベース、またはグループに対して権限を持っているユーザーは削除できません。このようなユーザーを削除しようとすると、以下のいずれかのエラーが発生します。

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 という 2 つのユーザーアカウントを削除します。

Copy
drop user danny, billybob;

次の例では、danny というユーザーアカウントが存在する場合は削除し、存在しない場合は何もしないでメッセージを返します。

Copy
drop user if exists danny;