跳到主要内容
版本:Candidate-3.3

SET DEFAULT ROLE

功能

设置用户登录时默认激活的角色。该命令从 3.0 版本开始支持。

提示

普通用户可以设置自己的默认角色,user_admin 可以为其他用户设置默认角色。设定时,请确认用户已经拥有对应角色。

可以通过 SHOW GRANTS 查看拥有的角色。

语法

-- 设置指定角色为用户的默认角色。
SET DEFAULT ROLE <role_name>[,<role_name>,..] TO <user_identity>;
-- 设置用户拥有的所有角色为默认角色,包括未来赋予给用户的角色。
SET DEFAULT ROLE ALL TO <user_identity>;
-- 不设置任何角色为默认角色,但此时用户仍旧会默认激活 public 角色。
SET DEFAULT ROLE NONE TO <user_identity>;

参数说明

role_name: 用户拥有的角色名。

user_identity: 用户标识。

示例

查看当前用户拥有的角色。

SHOW GRANTS FOR test;
+--------------+---------+----------------------------------------------+
| UserIdentity | Catalog | Grants |
+--------------+---------+----------------------------------------------+
| 'test'@'%' | NULL | GRANT 'db_admin', 'user_admin' TO 'test'@'%' |
+--------------+---------+----------------------------------------------+

示例一:设置 db_adminuser_admin 角色为 test 用户的默认角色。

SET DEFAULT ROLE db_admin TO test;

示例二:设置 test 用户拥有的所有角色为默认角色,包含未来授予给用户的角色。

SET DEFAULT ROLE ALL TO test;

示例三:清空 test 用户的默认角色。

SET DEFAULT ROLE NONE TO test;