文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


15.7.1.4 DROP ROLE 陳述式

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

DROP ROLE 會移除一個或多個角色(具名的權限集合)。若要使用此陳述式,您必須擁有全域的 DROP ROLECREATE USER 權限。當啟用 read_only 系統變數時,DROP ROLE 還需要 CONNECTION_ADMIN 權限(或已棄用的 SUPER 權限)。

擁有 CREATE USER 權限的使用者可以使用此語句來刪除已鎖定或未鎖定的帳戶。擁有 DROP ROLE 權限的使用者只能使用此語句來刪除已鎖定的帳戶(未鎖定的帳戶通常是使用者用來登入伺服器的帳戶,而不僅僅是角色)。

mandatory_roles 系統變數值中指定的角色名稱不能被刪除。

DROP ROLE 要嘛對所有指定的角色成功執行,要嘛在發生任何錯誤時回滾且沒有任何影響。預設情況下,如果您嘗試刪除不存在的角色,則會發生錯誤。如果給定了 IF EXISTS 子句,則該語句會針對每個不存在的指定角色產生警告,而不是錯誤。

如果語句成功,則會寫入二進制日誌,但如果失敗則不會;在這種情況下,會發生回滾且不會進行任何更改。寫入二進制日誌的語句包括所有指定的角色。如果給定了 IF EXISTS 子句,這甚至包括不存在且未被刪除的角色。

每個角色名稱都使用 第 8.2.5 節「指定角色名稱」中描述的格式。例如:

DROP ROLE 'admin', 'developer';
DROP ROLE 'webapp'@'localhost';

角色名稱的主機名稱部分如果省略,則預設為 '%'

已刪除的角色會自動從任何已授予該角色的使用者帳戶(或角色)中撤銷。在任何此類帳戶的目前會話中,其調整後的權限將從執行的下一個語句開始生效。

有關角色使用範例,請參閱 第 8.2.10 節「使用角色」