本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從資料庫捨棄使用者。使用單一 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]
如需如何尋找資料庫使用者擁有之物件的詳細指示,請參閱知識中心內的如何解決 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;