刪除資料庫使用者帳號。
文法
DROP USER name [ CASCADE ]說明
DROP USER可刪除指定的使用者。要刪除超級使用者,您自己必須是超級使用者;要刪除超級使用者以外的使用者,您必須具有CREATEROLE特權。
如果叢集中的任何資料庫仍在引用一個使用者,則不能將其刪除;如果刪除,則會引發錯誤。在刪除使用者之前,必須刪除其擁有的所有對象(或重新分配它們的所有權)並取消之前向使用者授予的所有特權。
不過,並非必須刪除與使用者相關的角色成員資格;DROP USER會自動取消目標使用者在其他角色中的所有成員資格,以及其他角色在目標使用者中的成員資格。不會刪除其他角色,也不會產生其他影響。
另外,如果使用者僅有的對象屬於使用者擁有的、與使用者同名的Schema,則可以指定CASCADE選項。在這種情況下,必須由超級使用者發出DROP USER name CASCADE命令,且所指定使用者、Schema以及Schema中的所有對象都將被刪除。
參數
參數 | 說明 |
name | 要刪除的使用者的名稱。 |
CASCADE | 如果已指定,還會刪除使用者擁有的、與使用者同名的Schema(以及屬於Schema成員的使用者擁有的所有對象),前提是不存在依賴於使用者或Schema的其他依賴項。 |
樣本
刪除不擁有對象、也未被授予有關其他對象的任何特權的使用者帳號:
DROP USER john;刪除使用者帳號john,它未被授予有關任何對象的任何特權,而且在名為john 的Schema(由john使用者所有)以外不擁有任何對象:
DROP USER john CASCADE;