REVOKE <role>

    RevokeRoleStmt:

    RolenameList:

    UsernameList:

    UsernameList

    创建新角色 analyticsteam 和新用户 jennifer

    1. $ mysql -ujennifer
    2. SHOW GRANTS;
    3. +---------------------------------------------+
    4. | Grants for User |
    5. +---------------------------------------------+
    6. | GRANT USAGE ON *.* TO 'jennifer'@'%' |
    7. | GRANT 'analyticsteam'@'%' TO 'jennifer'@'%' |
    8. +---------------------------------------------+
    9. 2 rows in set (0.00 sec)
    10. SHOW TABLES in test;
    11. ERROR 1044 (42000): Access denied for user 'jennifer'@'%' to database 'test'
    12. SET ROLE analyticsteam;
    13. Query OK, 0 rows affected (0.00 sec)
    14. SHOW GRANTS;
    15. +---------------------------------------------+
    16. | Grants for User |
    17. | GRANT USAGE ON *.* TO 'jennifer'@'%' |
    18. | GRANT Select ON test.* TO 'jennifer'@'%' |
    19. | GRANT 'analyticsteam'@'%' TO 'jennifer'@'%' |
    20. +---------------------------------------------+
    21. 3 rows in set (0.00 sec)
    22. SHOW TABLES IN test;
    23. +----------------+
    24. | Tables_in_test |
    25. +----------------+
    26. | t1 |
    27. +----------------+
    28. 1 row in set (0.00 sec)

    执行 SET DEFAULT ROLE 语句将用户 jennifer 与某一角色相关联,这样该用户无需执行 SET ROLE 语句就能拥有与角色相关联的权限。

    1. $ mysql -ujennifer
    2. SHOW GRANTS;
    3. +---------------------------------------------+
    4. | Grants for User |
    5. +---------------------------------------------+
    6. | GRANT USAGE ON *.* TO 'jennifer'@'%' |
    7. | GRANT Select ON test.* TO 'jennifer'@'%' |
    8. | GRANT 'analyticsteam'@'%' TO 'jennifer'@'%' |
    9. SHOW TABLES IN test;
    10. +----------------+
    11. | Tables_in_test |
    12. +----------------+
    13. | t1 |
    14. +----------------+
    15. 1 row in set (0.00 sec)

    收回角色 analyticsteam

    1. $ mysql -ujennifer
    2. SHOW GRANTS;
    3. +--------------------------------------+
    4. | Grants for User |
    5. +--------------------------------------+
    6. | GRANT USAGE ON *.* TO 'jennifer'@'%' |
    7. +--------------------------------------+
    8. 1 row in set (0.00 sec)

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