MySQL 9.0 版本注意事項
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 節「使用角色」。