跳到主要内容
版本: 最新版本-3.5

SET DEFAULT ROLE

SET DEFAULT ROLE 设置用户连接到服务器时默认激活的角色。

v3.0 及以上版本支持此命令。

提示

普通用户可以为自己设置默认角色。 具有 user_admin 角色的用户可以为其他用户设置默认角色。 在执行此操作之前,请确保已为该用户分配了这些角色。

您可以使用 SHOW GRANTS 查询用户的角色。

语法

-- Set specified roles as default roles.
SET DEFAULT ROLE <role_name>[,<role_name>,..] TO <user_identity>;
-- Set all roles of the user, including roles that will be assigned to this user, as default roles.
SET DEFAULT ROLE ALL TO <user_identity>;
-- No default role is set but the public role is still enabled after a user login.
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'@'%' |
+--------------+---------+----------------------------------------------+

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

SET DEFAULT ROLE db_admin TO test;

示例 2:设置用户 test 的所有角色,包括将分配给该用户的角色作为默认角色。

SET DEFAULT ROLE ALL TO test;

示例 3:清除用户 test 的所有默认角色。

SET DEFAULT ROLE NONE TO test;