DROP USER
データベースからユーザーを削除します。1 つの DROP USER コマンドで複数のユーザーを削除できます。このコマンドを実行するには、データベースのスーパーユーザーであるか、DROP USER アクセス許可が必要です。
構文
DROP USER [ IF EXISTS ] name [, ... ]
パラメータ
- IF EXISTS
-
指定したユーザーが存在しない場合、コマンドはエラーで終了せずに、何も変更しないで、ユーザーが存在しない旨のメッセージを返すことを示す句。
この句は、存在しないユーザーに対して DROP USER を実行してもスクリプトがエラーにならないため、スクリプトを実行する際に便利です。
- [名前]
-
削除するユーザーの名前。各ユーザー名をコンマで区切って、複数のユーザーを指定できます。
使用に関する注意事項
rdsdb
という名前のユーザーまたはデータベースの管理者ユーザー (通常は、awsuser
または admin
という名前) は削除できません。
スキーマ、データベース、テーブル、ビューなどのデータベースオブジェクトを所有するユーザーと、データベース、テーブル、列、またはグループに対して権限を持っているユーザーは削除できません。このようなユーザーを削除しようとすると、以下のいずれかのエラーが発生します。
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]
データベースユーザーが所有するオブジェクトを検索する方法の詳細については、ナレッジセンターの「How do I resolve the "user cannot be dropped" error in 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 という 2 人のユーザーを削除します。
drop user paulo, martha;
次の例では、paulo というユーザーが存在する場合はそれを削除し、存在しない場合は何もしないでメッセージを返します。
drop user if exists paulo;