设计完整的权限管理系统<非原创>

很多人都知道以角色为基础的权限管理设计(RBAC),但是大部分人似懂非懂,不知道完整的权限管理系统都包括哪些内容。
在此以权限管理的使用场景来说明一下完整的权限管理内容。

一是鉴权管理,即权限判断逻辑。

1. 最基本的权限管理就是菜单管理,用户没有权限的功能模块在菜单节点上是不显示的。(很多人以为这就是权限管理!)
示例:普通业务人员登录系统后,是看不到【用户管理】菜单的。

2. 功能权限管理,B/S系统的功能体现为URL,所以功能权限管理主要是针对URL访问的管理。(很多人都不清楚权限管理的对象是什么?)
示例:
经过授权,部门经理可以查看【用户管理】菜单,并查看部门用户信息,但权限设计要求,该部门经理没有添加用户的权限。
所以在访问【添加用户】的功能(URL)时,应该有没有授权的提示信息。
同时在【用户管理】页面上,【添加用户】的按钮应该灰色显示,不能点击。

3. 行级权限管理
示例:
论坛管理员,权限设计要求 A能管理论坛 【新闻版块】,不能管理论坛 【技术交流】
此时的权限设计就应该根据论坛的相应ID来判断权限信息。

4. 列级权限管理
示例:
业务权限设计要求,除销售人员以外,其他用户不能看到客户的联系方式信息。
此时的权限设计要判断相应的字段(列)是否可以显示。

5. 组织机构/部门级数据权限管理
示例:
业务权限设计要求,销售一部的人员只能看到本部门的销售订单,销售二部的人员只能看到本部门的销售订单,但销售经理可以同时看到
销售一部和销售二部的销售订单。
此时的权限设计就要根据销售订单数据本身的部门属性来做判断

6. 范围型业务数据权限管理
示例:
大卖场销售人员在下销售订单时,要选择相应的产品所在仓库信息。
业务权限设计要求,【国美】的销售人员在选择仓库的下拉列表中不能看到【广州仓库】,而【大中电器】的销售人员在选择仓库的下拉列表中不能看到【北京顺义仓库】

二是授权管理,即权限分配过程。以上的权限管理内容都要通过系统的授权功能来分配给具体的用户,授权功能应该足够灵活。

1. 直接对用户授权,直接分配到用户的权限具有最优先级别。

2. 对用户所属岗位授权,用户所属岗位信息可以看作是一个分组,和角色的作用一样,但是每个用户只能关联一个岗位信息。

3. 对用户所属角色授权,用户所属角色信息可以看作是一个权限分组,每个用户可以关联多个角色。

4. 角色直接关联具体的功能权限(URL),也可以关联负权限,即此角色关联的权限不能使用负权限功能。负权限具有优先级别。

5. 分级授权,系统管理员可以将自己拥有的权限信息授权给其他用户。即可以设置分级管理员和超级管理员。

Tagged: web, 架构, 设计模式

时间: 2024-10-12 21:46:12

设计完整的权限管理系统<非原创>的相关文章

[转]完整的权限管理系统,设计概要

很多人都知道以角色为基础的权限管理设计(RBAC),但是大部分人似懂非懂,不知道完整的权限管理系统都包括哪些内容.  在此以权限管理的使用场景来说明一下完整的权限管理内容.     一是鉴权管理,即权限判断逻辑.     1. 最基本的权限管理就是菜单管理,用户没有权限的功能模块在菜单节点上是不显示的.(很多人以为这就是权限管理!)      示例:普通业务人员登录系统后,是看不到[用户管理]菜单的.         2. 功能权限管理,B/S系统的功能体现为URL,所以功能权限管理主要是针对U

软件架构设计常用方法-软件架构设计学习第五天(非原创) 发布成功,点击查看文章

文章大纲 一.需考虑问题二.前端架构三.应用层架构四.服务层架构五.存储层架构六.后台架构七.数据采集与监控八.安全架构九.数据中心机房架构十.自动化运维十一.参考文章 一.需考虑问题 1. 研发过程管理困难 (1)依赖管理,每个模块对其他模块的依赖是管理困难的:(2)版本管理:(3)部署管理(搭火车,难以触达到用户):(4)模块组织方式(库工程,源代码级别,没有权限).(5)构建打包痛苦:可能不能打包(2.x安装不上),合并代码搞了很久,编译打包时间过长. 2. 架构设计需考虑情况 (1)业务

互联网技术架构演变过程-软件架构设计学习第四天(非原创)

文章大纲 一.演变过程思路图二.何为大型网站三.架构体系演进四.架构总结五.参考文章 一.演变过程思路图 二.何为大型网站 1. 大型网站特性 既然说的是大型网站架构,那么架构的背后自然是解决人因面对大型网站特性而带来的问题.这样可以先给大家说下大型网站的特性,这些特性带来的问题就是人要解决的问题:(1)高并发.大流量:PV 量巨大:(2)高可用:7*24 小时不间断服务:(3)海量数据:文件数目分分钟 xxTB:(4)用户分布广泛,网络情况复杂:网络运营商:(5)安全环境恶劣:黑客的攻击:(6

Asp.Net Core 项目实战之权限管理系统(2) 功能及实体设计

0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之权限管理系统(2) 功能及实体设计 3 Asp.Net Core 项目实战之权限管理系统(3) 通过EntityFramework Core使用PostgreSQL 4 Asp.Net Core 项目实战之权限管理系统(4) 依赖注入.仓储.服务的多项目分层实现 5 Asp.Net Core 项目实

Asp.Net Core 项目实战之权限管理系统(3) 功能及实体设计

0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之权限管理系统(2) 功能及实体设计 3 Asp.Net Core 项目实战之权限管理系统(3) 通过EntityFramework Core使用PostgreSQL github源码地址 0 功能设计 实现一个最简单最基本的权限管理系统,主要包括组织机构管理.角色管理.用户管理.功能管理.角色授权.

用户和角色:通用权限管理系统数据库表结构如何设计?

一,前言 权限管理系统的应用者应该有三种不同性质上的使用,A,使用权限B,分配权限C,授权权限 本文只从<使用权限>和<分配权限>这两种应用层面分析,暂时不考虑<授权权限>这种.二,初步分析用户和角色 说到权限管理,首先应该想到,当然要设计一个用户表,一个权限表.这样就决定了一个人有什么样的权限.做着做着就会发现这样设计太过繁琐,如果公司里面所有员工都有这样的权限呢,每一个人都要配置?那是一件很痛苦的事情.因此再添加一个角色表,把某些人归为一类,然后再把权限分配给角色.

基于Flask实现后台权限管理系统 - 表设计

1.1. 设计 1.1.1. 用户表 用户表记录系统中的所有用户,是权限管理系统最基本的部分,和其他权限表都有一定的关联关系,同时,一个还有一个重要的功能:系统登陆. 名称 数据类型 允许空值 默认值 描述 ID VARCHAR 否 无默认值 唯一编号 AGE INT 是 NULL 年龄 LOGINNAME VARCHAR 否 无默认值 登陆名称 NAME VARCHAR 是 NULL 昵称 PWD VARCHAR 是 NULL 密码,MD5加密 CREATEDATETIME DATETIME

[数据库设计]用户和角色:通用权限管理系统数据库表结构如何设计?

一,前言 权限管理系统的应用者应该有三种不同性质上的使用, A,使用权限 B,分配权限 C,授权权限  本文只从<使用权限>和<分配权限>这两种应用层面分析,暂时不考虑<授权权限>这种. 二,初步分析用户和角色 说到权限管理,首先应该想到,当然要设计一个用户表,一个权限表.这样就决定了一个人有什么样的权限. 做着做着就会发现这样设计太过繁琐,如果公司里面所有员工都有这样的权限呢,每一个人都要配置?那是一件很痛苦的事情.因此再添加一个角色表,把某些人归为一类,然后再把权限

ORM框架SQLAlchemy与权限管理系统的数据库设计

SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用对象关系映射进行数据库操作,即:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果. 执行流程: 1.使用者通过ORM对象提交命令 2.将命令交给SQLAlchemy Core(Schema/Types SQL Expression Language)转换成SQL 3.使用 Engine/ConnectionPooling/Dialect 进行数据库操作 4.匹配使用者事先配置好的egin