本文为我们介绍了功能权限和数据权限的不同点、以及不同部分中的要点与注意事项。
![c22f23a08651b6e696bfb6fbea5392ed.png](https://i-blog.csdnimg.cn/blog_migrate/753563c8a81fe4010a546be1b43d0ab5.jpeg)
做2B的系统总是不可回避的遇上权限问题,他不是核心业务却又必不可少,而且总是牵一发而动全身,更要命的是不同客户组织架构完全不同,功能复用性很低。有没有什么方法论能快速理清权限问题呢?
我们一般说【权限】的时候是在说功能权限和数据权限。功能权限指用户登录系统后能看到什么模块,能看到哪些页面,而数据权限指的是用户在某个模块里能看到几条数据,能看到哪些数据。以下分别描述一下我对功能权限和数据权限的理解。
功能权限
在企业系统中,通过配置用户的功能权限可以解决不同的人分管不同业务的需求,但是如何实现快速配置?功能的粒度是模块级的还是页面级的还是更细粒度的?跨模块操作时没权限怎么办?
![871376edfab87e758ed2120dbc94d4f4.png](https://i-blog.csdnimg.cn/blog_migrate/def8d0afd2e5c9c58df44f36a55d2824.jpeg)
图1-1
RBAC模型
说到功能权限不得不说RBAC(Role Based Access Control)模型,它的中文是基于角色的访问控制,主要是将功能组合成角色,再将角色分配给用户,也就是说角色是功能的合集。RBAC有多个成员,但是基础的RBAC0就足够我们涉及的系统使用了。(如果想了解更多,请点击RBAC权限管理总结)
为什么要引入这个模型呢?请看以下的例子:
企业A一共有12个功能,需要创建100个用户,这些用户中有管财务的、有管人事的、有管销售的等等。如果不引入RBAC模型,我们需要每创建一个用户就要分配一次功能,至少(每个用户只有一个功能)操作100次,如果人数增加到1000甚至10000,并且一个用户可能会有多个功能的时候,操作会非常繁琐,如图:
![0bd82eb497ae9ca2b785d0f14d818750.png](https://i-blog.csdnimg.cn/blog_migrate/ba40273546d68a8dad5431da634a791e.jpeg)
图1-2
经过多次操作发现:分配给某些人的功能都是