平台后台需要有权限管理,好的权限管理从数据库开始设计,在此我们采用基于角色的访问控制来做我们的权限系统.
以角色为基础的访问控制[1][2](英语:Role-based access control,RBAC),是资讯安全领域中,一种较新且广为使用的访问控制机制,其不同于强制访问控制以及自由选定访问控制[3]直接赋予使用者权限,而是将权限赋予角色。1996年,莱威·桑度(Ravi Sandhu)等人在前人的理论基础上,提出以角色为基础的访问控制模型,故该模型又被称为RBAC96。之后,美国国家标准局重新定义了以角色为基础的访问控制模型,并将之纳为一种标准,称之为NIST RBAC。——引用 wikipedia
在平台后台,我们将通过赋予用户菜单显示与否来控制权限。首先用户可以拥有多个角色,一个角色对应多个菜单权限。由此我们可以设计出以下的数据库
数据库设计
1.首先我们来看rbac_user表
rbac_user表
rbac_user表里面存储一些用户的基本信息,不需要关心用户登录方式
2.rbac_role表,存储角色
rbac_role表
3.rbac_user_role,用户关联角色表
rbac_user_role表
4.rbac_menu,菜单表,最重要的设计在此,我们先来看一下表的结构
rbac_menu表
注意此表的menu_type:菜单类型 0:菜单(即有下拉子菜单)1:链接网页(即直接打开网页)2:隐藏链接(即页面上按钮请求地址etc...),通过该属性,我们能构造出相应的菜单展示
5.rbac_user_auths表,作为用户基本信息表扩充,扩展各种登录方式
rbac_user_auths表
user_id关联用户基本信息表,identity_type:登录类型(手机号 邮箱 用户名)或第三方应用名称(微信 微博等)
identifier:标识(手机号 邮箱 用户名或第三方应用的唯一标识)
credential:密码凭证(站内的保存密码,站外的不保存或保存token)
采用上述表我们将构建我们的后台权限系统
SQL文件存放在我码云的wiki上面:
https://gitee.com/sign.com/do/wikis/1.%E7%94%A8%E6%88%B7%E6%9D%83%E9%99%90%E5%88%86%E6%9E%90
领取专属 10元无门槛券
私享最新 技术干货