DROP ROLE — 移除資料庫角色
DROP ROLE [ IF EXISTS ] name
[, ...]
DROP ROLE
移除指定的角色。 要移除超級使用者角色,您必須是超級使用者;要移除非超級使用者角色,您必須具有 CREATEROLE
權限,並且已被授予該角色的 ADMIN OPTION
。
如果角色的參考存在於叢集的任何資料庫中,則無法將其移除;如果這樣做,將會引發錯誤。 在移除角色之前,您必須移除它擁有的所有物件(或重新分配它們的所有權),並撤銷已授予該角色對其他物件的任何權限。REASSIGN OWNED
和 DROP OWNED
指令可用於此目的;有關更多討論,請參閱 第 21.4 節。
但是,沒有必要移除涉及該角色的角色成員資格;DROP ROLE
會自動撤銷目標角色在其他角色中的任何成員資格,以及其他角色在目標角色中的成員資格。 其他角色不會被移除,也不會受到其他影響。
IF EXISTS
如果角色不存在,則不要拋出錯誤。 在這種情況下會發出通知。
name
要移除的角色的名稱。
PostgreSQL 包含一個程式 dropuser,它具有與此指令相同的功能(事實上,它調用此指令),但可以從命令列 shell 執行。
移除一個角色
DROP ROLE jonathan;
SQL 標準定義了 DROP ROLE
,但它只允許一次移除一個角色,並且它指定的權限要求與 PostgreSQL 使用的不同。
如果您在文件中看到任何不正確、與您使用特定功能的經驗不符或需要進一步說明的地方,請使用此表單來回報文件問題。