SET ROLE

    用于在当前用户会话中启用角色。使用 SET ROLE 启用角色后,用户可以使用这些角色的权限。

    SetRoleStmt:

    SetRoleOpt

    SetDefaultRoleOpt:

    使用 'u1'@'%' 登录,执行 SET ROLE 将启用角色设置为 ALL

    1. SET ROLE ALL;
    2. SELECT CURRENT_ROLE();
    1. +----------------------------+
    2. | CURRENT_ROLE() |
    3. | `r1`@`%`,`r2`@`%`,`r3`@`%` |
    4. 1 row in set (0.000 sec)

    执行 SET ROLE 将启用角色设置为 'r2''r3'

    1. +-------------------+
    2. | CURRENT_ROLE() |
    3. +-------------------+
    4. | `r2`@`%`,`r3`@`%` |
    5. +-------------------+
    6. 1 row in set (0.000 sec)

    执行 SET ROLE 将启用角色设置为 DEFAULT

    1. SET ROLE DEFAULT;
    1. SET ROLE NONE;
    1. +----------------+
    2. | CURRENT_ROLE() |
    3. +----------------+
    4. | |
    5. +----------------+
    6. 1 row in set (0.000 sec)

    SET ROLE 语句与 MySQL 8.0 的角色功能完全兼容。如发现任何兼容性差异,请在 GitHub 上提交 。