什么是粗粒度和细粒度权限
1. 什么是粗粒度和细粒度权限
粗粒度权限管理,对资源类型的权限管理。资源类型比如:菜单、url连接、用户添加页面、用户信息、类方法、页面中按钮。。
粗粒度权限管理比如:超级管理员可以访问户添加页面、用户信息等全部页面。
部门管理员可以访问用户信息页面包括 页面中所有按钮。
细粒度权限管理,对资源实例的权限管理。资源实例就资源类型的具体化,比如:用户id为001的修改连接,1110班的用户信息、行政部的员工。
细粒度权限管理就是数据级别的权限管理。
细粒度权限管理比如:部门经理只可以访问本部门的员工信息,用户只可以看到自己的菜单,大区经理只能查看本辖区的销售订单。。
粗粒度和细粒度例子:
系统有一个用户列表查询页面,对用户列表查询分权限,如果粗颗粒管理,张三和李四都有用户列表查询的权限,张三和李四都可以访问用户列表查询。
进一步进行细颗粒管理,张三(行政部)和李四(开发部)只可以查询自己本部门的用户信息。张三只能查看行政部 的用户信息,李四只能查看开发部门的用户信息。细粒度权限管理就是数据级别的权限管理。
2. 如何实现粗粒度和细粒度权限管理
如何实现粗粒度权限管理?
粗粒度权限管理比较容易将权限管理的代码抽取出来在系统架构级别统一处理。比如:通过springmvc的拦截器实现授权。
如何实现细粒度权限管理?
对细粒度权限管理在数据级别是没有共性可言,针对细粒度权限管理就是系统业务逻辑的一部分,如果在业务层去处理相对比较简单,如果将细粒度权限管理统一在系统架构级别去抽取,比较困难,即使抽取的功能可能也存在扩展不强。
建议细粒度权限管理在业务层去控制。
比如:部门经理只查询本部门员工信息,在service接口提供一个部门id的参数,controller中根据当前用户的信息得到该 用户属于哪个部门,调用service时将部门id传入service,实现该用户只查询本部门的员工。
3. 基于url拦截的方式实现
基于url拦截的方式实现在实际开发中比较常用的一种方式。
对于web系统,通过filter过虑器实现url拦截,也可以使用springmvc的拦截器实现基于url的拦截。
4. 使用权限管理框架实现
对于粗粒度权限管理,建议使用优秀权限管理框架来实现,节省开发成功,提高开发效率。
shiro就是一个优秀权限管理框架。
转载他人,仅供参考。谢谢!
什么是粗粒度和细粒度权限相关推荐
- mysql最细粒度的权限是什么_粗粒度与细粒度权限控制
1.1 什么是粗粒度和细粒度权限 粗粒度权限管理,对资源类型的权限管理.资源类型比如:菜单.url连接.用户添加页面.用户信息.类方法.页面中按钮.. 粗粒度权限管理比如:超级管理员可以访问户添加页面 ...
- 权限控制之粗粒度与细粒度
1. 什么是粗粒度和细粒度权限 粗粒度权限管理,对资源类型的权限管理.资源类型比如:菜单.url连接.用户添加页面.用户信息.类方法.页面中按钮.. 粗粒度权限管理比如:超级管理员可以访问户添加页 ...
- 【SSH框架/国际物流商综平台】-05 单点登录 用户-角色-权限分配 Ztree.js structs2.0 异常框架 细粒度权限控制 BaseEntitity中createby degree
回顾 Shiro安全框架 认证,授权,加密,会话管理(单点登录),缓存,与web集成 单点登录(SSO Single Sign on)的原理 就是将原有的各个系统的会话管理机制,抽取出来交给第三方集中 ...
- 什么是粗粒度与细粒度,它们的区别又是什么?
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/tashanhongye/article/details/47665989 下面是摘录CSDN上 ...
- 粗粒度与细粒度的解释
粗粒度和细粒度的区别主要是出于重用的目的,像类的设计,为尽可能重用,所以采用细粒度的设计模式,将一个复杂的类(粗粒度)拆分成高度重用的职责清晰的类(细粒度).对于数据库的设计,原责:尽量减少表的数量与 ...
- 粗粒度和细粒度的区别
就我个人的理解来说,粗粒度与细粒度是相对而言的,没有绝对的粗或者细,就像所谓的上和下,快和慢,大和小, 正如一个的项目,让你知道其实现的大纲,也就算是粗粒度,如果是告诉你实现的细节,就应该算是细粒度的 ...
- java 粒度_java中粗粒度和细粒度的概念
粗粒度和细粒度的主要区别在于重用的目的:像类的设计,为了尽可能的重用则采用细粒度的设计模式,将一个复杂的类(粗粒度)拆分成几个高度重用,职责清晰的类(细粒度).对于数据库的设计,尽量减少表的数量和表之 ...
- Spring Boot Web应用集成Keycloak进阶之细粒度权限控制
[](()资源管理 ======================================================================= 资源管理主要用来定义资源服务器的哪些 ...
- oracle三种权限级别,ORACLE FGAC(细粒度权限控制)
--主要完成ORACLE fine-grained access control , 以及使用存储过程进行权限封装 /*Oracle fine-grained access control 可以实现数 ...
最新文章
- ACM入门之【并查集】
- matlab中如何添加注释
- python 并行计算库_Python 大规模数据存储与读取、并行计算:Dask库简述
- JavaScript实现元素全排列
- Mysql学习总结(7)——MySql索引原理与使用大全
- mysql 1607_Windows下Mysql启动“服务名无效”及“系统错误1607”解决办法
- Ubuntu调整CPU程序调度和CPU频率的几种方法
- diabetes影响因子2017_瑞金医院创办Journal of Diabetes成为亚太地区影响因子最高的糖尿病学术期刊...
- Android中矢量图形的相关知识
- 中国大学MOOC电影鉴赏题库(含答案)
- 闪迪U盘插入电脑后,系统能识别到插入,但在我的电脑中没有显示的解决方法
- 西电2021计算机考研大纲,2021年西安电子科技大学硕士研究生833计算机学科专业基础综合考试大纲...
- 腾讯云接入备案流程 新手必看教程
- 不对齐 谷歌浏览器_谷歌浏览器input上下不对齐兼容解决办法
- 日均5亿查询量,京东到家订单中心ES架构演进
- 【CAD】【个人习惯】十字光标大小和自定义右键单击
- 基于element-ui 搭建管理后台
- Java:MVC设计模式
- 使用gdb调试Android(aarch 64)可执行二进制文件
- DNA提取过程中各种试剂的作用
热门文章
- 程序员之路:Linux目录处理命令_彭世瑜_新浪博客
- 实际工作开发中C语言工程的目录结构分析
- 201SC@SDUSC-SUDDOC-blog08
- No Feign Client for loadBalancing defined.错误
- 耶鲁大学 博弈论(Game Theory) 笔记6-纳什均衡之纳什均衡之伯川德模型与选民投票
- 基于区块链的链上数据安全共享体系研究
- 【信息检索导论】第三章 容错式检索
- 使用 minikube 安装 k8s-cluster
- android设置手机震动强度,android 控制震动强度
- linux 更改用户密码