MySQL通过角色实现权限继承,8.0以上版本可创建角色并授予权限,再将角色分配给用户,实现权限复用与管理;旧版本可用模板用户模拟。

MySQL 本身不支持传统意义上的“权限继承”机制,比如像操作系统中用户组那样的自动继承。但可以通过角色(Roles)功能在逻辑上实现类似权限继承的效果,尤其是在 MySQL 8.0 及以上版本中。
MySQL 8.0 引入了角色支持,允许你创建具有特定权限的角色,并将这些角色分配给多个用户,从而实现“权限复用”和“类继承”的管理方式。
步骤如下:
1. 创建角色
使用 CREATE ROLE 语句创建一个或多个角色:
CREATE ROLE 'developer', 'readonly_user', 'admin_template';
2. 为角色授予权限
给角色分配相应的数据库权限,例如:
GRANT SELECT, INSERT, UPDATE ON mydb.* TO 'developer'; GRANT SELECT ON mydb.* TO 'readonly_user'; GRANT ALL PRIVILEGES ON *.* TO 'admin_template';
3. 将角色赋予用户
将已定义的角色指派给具体用户,用户将获得该角色的所有权限:
2010-10-31日最新更正: 一、更正了产品及文章无限分类不能显示继承类别的bug. 二、更正了产品名称标题过长导致页面布局错位的bug. 随缘企业网站管理系统(无限级分类红色版)简介: 一、全站采用主流DIV+CSS框架布局,宽屏红灰主色调,简洁大方。适合各类行业作为企业站使用。 二、后台可对相关的网站标题,关键词,描述、底部版权信息等进行设置,同时可指定相关的安装目录,可在二级目录使用。
0
GRANT 'developer' TO 'user1'@'localhost'; GRANT 'readonly_user' TO 'user2'@'localhost';
4. 激活角色(可选配置)
默认情况下,用户登录后角色不会自动激活。可以设置默认角色:
SET DEFAULT ROLE ALL TO 'user1'@'localhost';
或者在会话中手动启用:
SET ROLE 'developer';
如果你使用的是 MySQL 5.7 或更早版本,不支持角色,可以通过“模板用户”方式模拟权限继承。
思路: 创建一个拥有通用权限的“模板用户”,然后通过复制其权限到其他用户。
虽然没有直接命令复制权限,但可通过以下方式操作:
SHOW GRANTS FOR 'template_user'@'%';
基本上就这些。MySQL 的“权限继承”靠角色机制实现,合理使用角色能大幅简化多用户权限管理。
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号