DROP USER - Amazon Redshift

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

DROP USER

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

Syntax (語法)

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

參數

IF EXISTS

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

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

name

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

使用須知

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

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 會在刪除使用者之前,只會檢查當前資料庫。若使用者擁有資料庫物件,或具有其他資料庫中物件的權限,DROP USER 則不會傳回錯誤。若您捨棄的使用者擁有其他資料庫中的物件,則這些物件的擁有者會變更為「不明」。

若使用者擁有物件,請先捨棄物件或將其所有權變更為其他使用者,再捨棄原始使用者。如果使用者具有物件的權限,請先撤銷權限,再捨棄使用者。以下範例顯示在捨棄使用者前,先捨棄物件、變更所有權,以及撤銷權限。

drop database dwdatabase; alter schema dw owner to dwadmin; revoke all on table dwtable from dwuser; drop user dwuser;

範例

以下範例會捨棄名為 danny 的使用者帳戶:

drop user danny;

以下範例會捨棄 danny 和 billybob 這兩個使用者帳戶:

drop user danny, billybob;

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

drop user if exists danny;