文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  SET ROLE 語法

15.7.1.11 SET ROLE 語法

SET ROLE {
    DEFAULT
  | NONE
  | ALL
  | ALL EXCEPT role [, role ] ...
  | role [, role ] ...
}

SET ROLE 透過指定其授予的哪些角色處於活動狀態,來修改目前使用者在目前會話中的有效權限。 授予的角色包括明確授予使用者的角色以及在 mandatory_roles 系統變數值中命名的角色。

範例

SET ROLE DEFAULT;
SET ROLE 'role1', 'role2';
SET ROLE ALL;
SET ROLE ALL EXCEPT 'role1', 'role2';

每個角色名稱都使用第 8.2.5 節「指定角色名稱」中描述的格式。角色名稱的主機名稱部分如果省略,則預設為 '%'

使用者直接被授予的權限(而非透過角色)不受作用中角色變更的影響。

此語句允許以下角色指定符

  • DEFAULT:啟用帳戶的預設角色。預設角色是使用 SET DEFAULT ROLE 指定的角色。

    當使用者連線到伺服器並成功驗證時,伺服器會決定要啟用哪些角色作為預設角色。如果啟用 activate_all_roles_on_login 系統變數,伺服器會啟用所有已授予的角色。否則,伺服器會隱式執行 SET ROLE DEFAULT。伺服器僅啟用可以啟用的預設角色。伺服器會將無法啟用的預設角色的警告寫入其錯誤日誌,但用戶端不會收到任何警告。

    如果使用者在工作階段期間執行 SET ROLE DEFAULT,如果任何預設角色無法啟用(例如,如果它不存在或未授予給使用者),則會發生錯誤。在這種情況下,目前作用中的角色不會變更。

  • NONE:將作用中的角色設定為 NONE(沒有作用中的角色)。

  • ALL:啟用授予給帳戶的所有角色。

  • ALL EXCEPT role [, role ] ...:啟用授予給帳戶的所有角色,但已命名的角色除外。已命名的角色不需要存在或授予給帳戶。

  • role [, role ] ...:啟用已命名的角色,這些角色必須授予給帳戶。

注意

SET DEFAULT ROLESET ROLE DEFAULT 是不同的語句

  • SET DEFAULT ROLE 定義在帳戶工作階段中預設啟用哪些帳戶角色。

  • SET ROLE DEFAULT 將目前工作階段中的作用中角色設定為目前的帳戶預設角色。

如需角色使用範例,請參閱第 8.2.10 節「使用角色」