美文网首页
如易云解密4-运营系统权限设计

如易云解密4-运营系统权限设计

作者: starteasy | 来源:发表于2016-12-12 16:11 被阅读226次

       【by yhliu】

【业务领域】    

       互联网产品要做好服务,必须要有一个强大完善灵活的运营支撑系统。这个线上的系统一定会对应到一个庞杂的线下组织-运营团队。对于一个大型互联网公司,可能通过组织结构可以识别出大家的运营分工;也可能对于一些运营人员有超出组织结构外的运营智能。对于可运营的数据,可能根据所服务的地域(北京/上海等)、所服务对象的品类(男装/女装 等)、也可能是不同职权(大区经理/区域经理 等),也可能是某一对象的特别实例;对于功能 基本按照大家不同的工作职能分工来确定。

【解决方案】  

        基于GBAC(GROUP-Based Access Control)的权限管理控制,用户通过角色与权限进行关联,一个用户可以拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型,在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。其对应关系如下:

这样做的好处:

·不同职责的人员,对于系统操作的权限应该是不同的。优秀的业务系统,这是最基本的功能。

·可以对“组”进行权限分配。对于一个大企业的业务系统来说,如果要求管理员为其下员工逐一分配系统操作权限的话,是件耗时且不够方便的事情。所以,系统中就提出了对“组”进行操作的概念,将权限一致的人员编入同一组,然后对该组进行权限分配。

·权限管理系统应该是可扩展的。它应该可以加入到任何带有权限管理功能的系统中。就像是组件一样的可以被不断的重用,而不是每开发一套管理系统,就要针对权限管理部分进行重新开发。

·满足业务系统中的功能权限。传统业务系统中,存在着两种权限管理,其一是功能权限的管理,而另外一种则是资源权限的管理,在不同系统之间,功能权限是可以重用的,而资源权限则不能。

涉及到的表

具体sql请参考相关文档

实体表

user(用户表关系表或从表中对应id->userId)

role(角色表id->roleId)

resource(资源表对应一条记录对应页面上面的一项菜单id->resourceId)

model(模型表一条记录对应一张实体表id->model)

data_model(数据权限modelid->dataId)

datagroup(数据组datagroup->Id)

实体关系表:

role_user(用户—角色对应关联表)

role_resource(角色—资源关联表,什么样的角色对应那些菜单功能)

user_date(用户数据权限,如对某一地区)

datagroup_data(数据组和数据的对应关系)

从表

resource从表:

resource_grid(资源grid表)

resource_action(资源操作表)

1.用户-角色—资源权限操作的说明:

user表存储用户(管理人员)的基本信息 这里称之为【用户组】

role角色表 【角色组】或者【管理组】

resource_action操作权限

增 、删 、改 、查【权限组】

这三个表之间的关系是多对多的,一个权限可能同时属于多个角色,一个角色中也可能同时包含多个权限。同样的道理,一个用户只有一个角色,一个角色中可能包含多个用户

用户-角色-资源权限表之间的关系:

资源部分各表关系(data_Model第二部分会说明):

资源表用途主要是作为后台管理系统页面左侧菜单和点击菜单之后右侧展示出的相应的数据及操作权限:

例如:

CREATE TABLE`bd_classes` (

`id`bigint(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',

`classCode`varchar(32) NOT NULL DEFAULT '' COMMENT 'code',

`customName`varchar(64) NOT NULL DEFAULT '' COMMENT '名称',

`schoolCode`varchar(64) NOT NULL DEFAULT '' COMMENT '学校代码',

`startShcoolYear`int(11) unsigned DEFAULT '0' COMMENT '诞生于',

`endShcoolYear`int(11) unsigned DEFAULT '0' COMMENT '结束年份',

`classState`tinyint(4) unsigned DEFAULT '0' COMMENT '班级状态',

`classOrder`int(11) DEFAULT '0',

`status`tinyint(4) NOT NULL COMMENT '状态',

`creator`varchar(64) DEFAULT NULL COMMENT '创建人',

`createDate`bigint(20) DEFAULT NULL COMMENT '创建时间',

`lastModifier`varchar(64) DEFAULT NULL COMMENT '修改人',

`lastModDate`bigint(20) DEFAULT NULL COMMENT '修改时间',

`history` varchar(128) DEFAULT NULL COMMENT '历史所在年级Id',

`gradeCode`varchar(64) DEFAULT NULL COMMENT '年级编号',

`weixinId`int(11) DEFAULT NULL COMMENT '微信的专用id',

`aliasName`varchar(200) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '按照规则生成的别名',

`schoolYear`int(11) DEFAULT NULL COMMENT '学年',

PRIMARYKEY (`id`),

KEY`classCode` (`classCode`) USING HASH,

) ENGINE=InnoDBAUTO_INCREMENT=12467 DEFAULT CHARSET=utf8 COMMENT='班级信息管理|班级信息管理|基础数据管理|CreateBaseDomain\r\n班级信息管理model'

表中数据:

model班级表的模型bd_classes

resource表

说明url指访问路径

parentId指上级资源(菜单)

numb菜单标示(相当于唯一标识)

longNum如数据中的班级信息管理的菜单层次应为 基础数据管理-班级信息管理

modelId外键model表的id

resource_grid

resource_grid

说明:

resource_grid主要作用是动态配置页面数据展示的表格

orderNum表示在表格的第几列

width:列的宽度

formater调用页面js对某一列数据的处理

resource_action对于数据的操作权限

role

role_resource

user

role_user

2.用户-数据模型|数据组-数据权限

user用户表

data_model数据模型表

datagrounp数据组表

data表数据表

数据组与数据模型之间关系

通过数据模型(data_model)和数据组(datagroup)分配用户某一地区的数据权限(注data这里是地区)

data_model说明:

user_data

相关文章

  • 如易云解密4-运营系统权限设计

    【by yhliu】 【业务领域】 互联网产品要做好服务,必须要有一个强大完善灵活的运营支撑系统。这个线上的...

  • SaaS知识体系

    技术 SaaS系统用户权限设计 有赞权限系统 剖析SalesForce的多租户架构(PAAS\SAAS\云计算) ...

  • 如易云解密3-运营系统的动态性炼成记

    系统体验: 运营系统demo admin/admin 登录 一、单表页面的动态性 软件行业 抽象能力非常...

  • 权限管理设计思路

    最近公司的运营管理系统开发完毕,有时间来写点东西,就先来总结一下我再权限系统的设计思路吧,希望能有点用。 权限管理...

  • 数据库 权限设计

    数据库 权限设计 -系统权限管理设计-通用权限管理设计 之 数据库结构设计 权限 用户 角色 组 用户表

  • JavaWeb权限设计原理

    每个系统都有权限设计,本篇主要将初始的权限设计的原理,不依赖任何框架,以直观的角度剖析web的权限设计。 权限设计...

  • 权限相关学习记录

    RBAC:基于角色的访问控制方法 通用数据权限管理系统设计(一) 解释: 功能权限:能做什么的问题,如新增销售订单...

  • 缓存知识

    权限系统是管理类系统中必不可少的一个模块,一个好的缓存设计更是权限系统的重中之重,今天来聊下如何更好设计权限系统的...

  • 权限系统设计方案

    1权限模型 1.1 权限设计 从业务分类上来讲权限可以分为数据查看权限,数据修改权限等,对应到系统设计中有页面权限...

  • golang casbin gorm 权限控制

    Iris + Casbin 权限控制实战 在木犀的 PaaS 云平台的设计中,需要有一个细粒度比较小的权限控制系统...

网友评论

      本文标题:如易云解密4-运营系统权限设计

      本文链接:https://www.haomeiwen.com/subject/gebmmttx.html