从零搭建电商平台——用户权限分析

平台后台需要有权限管理,好的权限管理从数据库开始设计,在此我们采用基于角色的访问控制来做我们的权限系统.

以角色为基础的访问控制[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

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20171213A0FRHY00?refer=cp_1026

相关快讯

扫码关注云+社区