DROP USER - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

DROP USER

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

語法

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

參數

IF EXISTS

此子句會指出,若指定的使用者不存在,則命令不應進行任何變更,且應傳回使用者不存在的訊息,而不是在發生錯誤的情況下終止。

此子句在編寫指令碼時很實用,如此指令碼就不會因為 DROP USER 對不存在的使用者執行而失敗。

name

要移除的使用者名稱。您可以指定多個使用者,並以逗號分隔每個使用者名稱。

使用須知

您不能捨棄名為 rdsdb 的使用者或通常命名為 awsuseradmin 的資料庫管理員使用者。

若使用者擁有任何資料庫物件,像是結構描述、資料庫、資料表或檢視,或是使用者具有資料庫、資料表、資料欄或群組的任何權限,則無法捨棄使用者。如果您嘗試捨棄這類使用者,則會收到下列錯誤之一。

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 中的「使用者無法捨棄」錯誤?

注意

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:

drop user paulo, martha;

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

drop user if exists paulo;