- 首先角色需要激活,否则无法使用,网上都提到了,用 SET ROLE ALL,启用当前用户的所有角色;
- MYSQL 8.0的角色权限是区分大小写的,授权给ROLE后,一律权限相关的对象名会变成小写,你再访问这此对象时,也只能用小写;
- 角色权限中不要使用 FUNCTION(改编成 PROCEDURE 吧),因为在将角色授权给用户时,MYSQL 会将这些 FUNCTION 权限当成 PROCEDURE 权限授给用户,你使用 SHOW GRANTS FOR UserXXX USING RoleXXX,会看到这种混账操作。
以上三个坑发掘于 MYSQL 8.0.15