架构师之路-权限系统设计

权限系统设计

一个系统的核心,其中就包含权限数据管理。
这一部分的设计最为复杂也是系统设计的最基础的部分。
有幸我能设计这部分。
下面图能说清楚权限包含哪些概念。权限分类

  1. 权限(Permission):职能权利范围。(通俗说哪些事能干,哪些事不能干)
  2. 操作权限:一般体现在通过界面登录,登录进来到控制台,更直观的权限控制。
  3. 菜单权限:用户登录后,通过菜单显示控制这个用户的权限,正常的中型系统都具备这种功能。
  4. 按钮权限:这个细粒度就比较低,一般在菜单权限控制层下面,也就是说这个用户登录到界面后,通过对增、删、改、查导出等一些按钮进行控制。
  5. 数据权限:通过数据层来控制权限,比如:我们做一个产品,A公司在用,B公司也在用,那么我们通过系统设计时候进行标识出A公司还是B公司,虽然用的功能都一样,在后台直接通过数据进行了区分。

一. 权限模型

  市面上这种权限模型文章非常多,我简单的总结一下。
各有所长,各有所短。

一个好的模型并不是说越强大越好,一个好的女朋友并不是超级漂亮就一定好,当然也不能找个看一眼就想吐的,而是能包容你,有一个美丽的灵魂,温柔,善解人意…
跑题了,总结一句话,够用、用起来舒服为王道。

1. 权限模型分类

英文简称中文名称英文全称
ACL访问控制列表Access Control List
DAC任意访问控制Discretionary Access Control
MAC强制访问控制Mandatory Access Control
RBAC基于角色的权限控制Role Based Access Control
ABAC基于属性的权限控制Attribute Based Access Control
PBAC基于策略的权限控制Policy Based Access Control

2. 权限模型说明
ACL
acl
RBAC在这里插入图片描述
ABAC
这个模型根据特殊的规则来分配权限, 这些规则组合了用户(users), 资源(resource)和对象(objects)的属性
在这里插入图片描述
PBAC

用户(组)隶属于 角色,角色 隶属于 资源(项目)

在这里插入图片描述

3. 权限模型比较

  如果说针对微商,小程序这种小服务,没有强烈需求下,ACL 这种就够用了,没必要设计的那么繁琐。
  RBAC 比较常用的一种权限模型,基本上所有权限控制都能满足,唯一缺点,只要你用户需要哪怕一个权限,那你就需要一个角色,划分的比较细。

二. 数据库设计工具的使用

之前都用powerdsigner,现在自从用Mac电脑了,好多软件都改成mac习惯了,我用的是MySQL Workbentch,感觉还可以。
在这里插入图片描述包括对表的一些定义设置,都很方便。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值