DROP USER - Amazon Redshift

DROP USER

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

構文

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

パラメータ

IF EXISTS

指定したユーザーが存在しない場合、コマンドはエラーで終了せずに、何も変更しないで、ユーザーが存在しない旨のメッセージを返すことを示す句。

この句は、存在しないユーザーに対して DROP USER を実行してもスクリプトがエラーにならないため、スクリプトを実行する際に便利です。

name

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

使用に関する注意事項

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 の「ユーザーを削除できません」エラーを解決する方法を教えてください) を参照してください。

注記

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;