支援的版本: 目前 (17) / 16 / 15 / 14 / 13
開發版本: devel
不支援的版本: 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1

DROP ROLE

DROP ROLE — 移除資料庫角色

概要

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

描述

DROP ROLE 移除指定的角色。 要移除超級使用者角色,您必須是超級使用者;要移除非超級使用者角色,您必須具有 CREATEROLE 權限,並且已被授予該角色的 ADMIN OPTION

如果角色的參考存在於叢集的任何資料庫中,則無法將其移除;如果這樣做,將會引發錯誤。 在移除角色之前,您必須移除它擁有的所有物件(或重新分配它們的所有權),並撤銷已授予該角色對其他物件的任何權限。REASSIGN OWNEDDROP OWNED 指令可用於此目的;有關更多討論,請參閱 第 21.4 節

但是,沒有必要移除涉及該角色的角色成員資格;DROP ROLE 會自動撤銷目標角色在其他角色中的任何成員資格,以及其他角色在目標角色中的成員資格。 其他角色不會被移除,也不會受到其他影響。

參數

IF EXISTS

如果角色不存在,則不要拋出錯誤。 在這種情況下會發出通知。

name

要移除的角色的名稱。

注意

PostgreSQL 包含一個程式 dropuser,它具有與此指令相同的功能(事實上,它調用此指令),但可以從命令列 shell 執行。

範例

移除一個角色

DROP ROLE jonathan;

相容性

SQL 標準定義了 DROP ROLE,但它只允許一次移除一個角色,並且它指定的權限要求與 PostgreSQL 使用的不同。

提交更正

如果您在文件中看到任何不正確、與您使用特定功能的經驗不符或需要進一步說明的地方,請使用此表單來回報文件問題。