

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 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>

從資料庫捨棄使用者。使用單一 DROP USER 命令即可捨棄多個使用者。您必須是資料庫超級使用者，或具有 DROP USER 許可，才能執行此命令。

## 語法
<a name="r_DROP_USER-synopsis"></a>

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

## Parameters
<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]
```

如需如何尋找資料庫使用者擁有之物件的詳細指示，請參閱*知識中心*內的[如何解決 Amazon Redshift 中的「使用者無法捨棄」錯誤？](https://repost.aws/knowledge-center/redshift-user-cannot-be-dropped)。

**注意**  
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：

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

以下範例會捨棄使用者 paulo (如存在的話)，或不執行任何動作，並於該使用者帳戶不存在時傳回訊息：

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