

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、[ブログ記事](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)を参照してください。

# DROP USER
<a name="r_DROP_USER"></a>

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

## 構文
<a name="r_DROP_USER-synopsis"></a>

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

## パラメータ
<a name="r_DROP_USER-parameters"></a>

IF EXISTS  
指定したユーザーが存在しない場合、コマンドはエラーで終了せずに、何も変更しないで、ユーザーが存在しない旨のメッセージを返すことを示す句。  
この句は、存在しないユーザーに対して DROP USER を実行してもスクリプトがエラーにならないため、スクリプトを実行する際に便利です。

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

## 使用に関する注意事項
<a name="r_DROP_USER-notes"></a>

`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?](https://repost.aws/knowledge-center/redshift-user-cannot-be-dropped)」(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;
```

## 例
<a name="r_DROP_USER-examples"></a>

次の例では、paulo というユーザーを削除します。

```
drop user paulo;
```

次の例では、paulo と martha という 2 人のユーザーを削除します。

```
drop user paulo, martha;
```

次の例では、paulo というユーザーが存在する場合はそれを削除し、存在しない場合は何もしないでメッセージを返します。

```
drop user if exists paulo;
```