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 的程式,它具有與此命令相同的功能(實際上,它呼叫此命令),但可以在命令列外執行。
刪除一個角色
DROP ROLE jonathan;
SQL 標準定義了 DROP ROLE
,但它只允許一次刪除一個角色,並且它指定的許可權要求與 PostgreSQL 使用的不同。
如果您在文件中看到任何不正確的內容,與您對特定功能的經驗不符,或者需要進一步澄清,請使用 此表格 報告文件問題。