MySQL 8.4 發行說明
CREATE ROLE [IF NOT EXISTS] role [, role ] ...
CREATE ROLE
會建立一或多個角色,這些角色是權限的具名集合。若要使用此陳述式,您必須擁有全域 CREATE ROLE
或 CREATE USER
權限。當啟用 read_only
系統變數時,CREATE ROLE
另外需要 CONNECTION_ADMIN
權限(或已棄用的 SUPER
權限)。
角色在建立時會被鎖定,沒有密碼,並被指派預設的驗證外掛程式。(這些角色屬性稍後可以使用 ALTER USER
陳述式來變更,由擁有全域 CREATE USER
權限的使用者變更。)
CREATE ROLE
要嘛所有指定的角色都建立成功,要嘛就回滾且不產生任何效果(如果發生任何錯誤)。預設情況下,如果您嘗試建立一個已存在的角色,就會發生錯誤。如果提供 IF NOT EXISTS
子句,則對於每個已存在的指定角色,該陳述式會產生警告,而不是錯誤。
如果陳述式成功,就會寫入二進位日誌,但如果失敗則不會;在這種情況下,會發生回滾,且不會進行任何變更。寫入二進位日誌的陳述式會包含所有指定的角色。如果提供 IF NOT EXISTS
子句,這甚至包括那些已存在且未建立的角色。
每個角色名稱都使用 第 8.2.5 節「指定角色名稱」中描述的格式。例如
CREATE ROLE 'admin', 'developer';
CREATE ROLE 'webapp'@'localhost';
如果省略角色名稱的主機名稱部分,則預設為 '%'
。
有關角色使用範例,請參閱 第 8.2.10 節「使用角色」。