SET DEFAULT ROLE
{NONE | ALL | role [, role ] ...}
TO user [, user ] ...對於每個在 TO 關鍵字後立即指定的 user,此語句定義當使用者連線到伺服器並驗證身分時,或當使用者在會話期間執行 SET ROLE DEFAULT 語句時,哪些角色會變為啟用。
SET DEFAULT ROLE 是 ALTER USER ... DEFAULT ROLE 的替代語法(請參閱 第 15.7.1.1 節,「ALTER USER 語句」)。然而,ALTER USER 只能為單一使用者設定預設角色,而 SET DEFAULT ROLE 可以為多個使用者設定預設角色。另一方面,您可以為 ALTER USER 語句指定 CURRENT_USER 作為使用者名稱,但對於 SET DEFAULT ROLE 則不行。
SET DEFAULT ROLE 需要這些權限:
為其他使用者設定預設角色需要全域的
CREATE USER權限,或mysql.default_roles系統表格的UPDATE權限。為自己設定預設角色不需要特殊權限,只要您想要作為預設值的角色已授予您即可。
每個角色名稱使用 第 8.2.5 節,「指定角色名稱」 中描述的格式。例如:
SET DEFAULT ROLE 'admin', 'developer' TO 'joe'@'10.0.0.1';如果省略角色名稱的主機名稱部分,則預設為 '%'。
在 DEFAULT ROLE 關鍵字之後的子句允許以下這些值:
NONE:將預設值設定為NONE(無角色)。ALL:將預設值設定為授予該帳戶的所有角色。:將預設值設定為已命名的角色,這些角色必須存在且在執行role[,role] ...SET DEFAULT ROLE時已授予該帳戶。
SET DEFAULT ROLE 和 SET ROLE DEFAULT 是不同的語句。
SET DEFAULT ROLE定義在帳戶會話中預設啟用哪些帳戶角色。SET ROLE DEFAULT將目前會話中的活動角色設定為目前帳戶的預設角色。
有關角色使用範例,請參閱 第 8.2.10 節,「使用角色」。