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_admin
和 user_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;