mysql角色和用户如何关联

来源:这里教程网 时间:2026-02-28 20:06:49 作者:

MySQL中角色和用户的关联是通过权限系统中的角色分配机制实现的。从MySQL 8.0开始,引入了角色(Role)功能,允许将一组权限打包成角色,再将角色授予用户,简化权限管理。

什么是角色

角色是一组预定义的权限集合,可以像用户一样被授予或撤销。例如,可以创建一个名为

read_only
的角色,赋予其
SELECT
权限,然后将这个角色分配给多个需要只读权限的用户。

如何创建角色并授权

先创建角色,并为其赋予相应权限:

创建角色:
CREATE ROLE read_only, data_admin;
为角色赋权:
GRANT SELECT ON *.* TO read_only;

GRANT ALL PRIVILEGES ON app_db.* TO data_admin;

将角色分配给用户

使用

GRANT
命令将角色授予具体用户:

授予权限角色:
GRANT read_only TO 'alice'@'localhost';
可以一次授予多个角色:
GRANT read_only, data_admin TO 'bob'@'%';

激活角色

用户登录后,默认角色可能不会自动激活,需设置默认角色:

设置默认启用的角色:
SET DEFAULT ROLE read_only TO 'alice'@'localhost';
或在会话中手动激活:
SET ROLE read_only;

只有激活后,用户才能使用角色中的权限。

查看用户的角色和权限

可以通过以下方式检查关联情况:

查看某用户被授予的角色:
SHOW GRANTS FOR 'alice'@'localhost';
查看当前会话生效的权限:
SHOW GRANTS;

基本上就这些。通过角色管理,可以避免重复为每个用户单独授权,提升数据库权限管理效率。

相关推荐