权限控制管理设计
作者:互联网
-
用户需求:期望张三和李四能看到或使用的功能模块或者数据不一样
-
拆分成2个产品需求:
1、不同用户能操作不同的模块(功能权限)
2、不同用户能操作不同的数据(数据权限)
操作的含义:读/写 -
需求预研和设计:
- 参考RBAC(Role-Based Access Control)权限模型,主要通过角色和权限建立管理,将权限赋予给角色,再将角色赋予给用户,来实现权限控制的目标。
- 根据预研和需求目标开始设计自己的权限控制管理系统
- 2个需求目标
- 功能权限:我从产品功能模块和子模块划分,为角色赋予功能权限
- 数据权限:根据数据所属编目/所属数据库为赋予数据权限,以及数据的行列级别的权限控制
- 操作的不同含义:读/写权限,有读不允许写,有写权限就一定能读
- 默认角色:
- 平台管理员:全部权限
- 项目管理员:某个项目的全部权限
- 数据开发者
- 数据访客
- 运维:运维相关权限
- 自定义角色
- 2个需求目标
-
优点:相比为用户直接赋予权限的方式,在中间加一个角色,让整个权限控制设计更加灵活和直观
- 灵活:你想改一群相同用户的权限,我这种设计直接改角色就可以做到一改全改,而用户直接赋予权限就只能一个一个去更改
- 直观:查看一个用户的权限时不用细看,只用看角色名称就能大概知道其权限了,更加直观
-
缺点:
- 应对具有复杂的组织型架构多用户场景,如一个角色下有20多个用户,角色赋予效率较慢,当然对To B用户来说,必要性不是很大
- 措施:支持将多选用户生成一个用户组,为一个用户组赋予角色
标签:控制,角色,赋予,用户,设计,权限,数据 来源: https://blog.csdn.net/qq_42595065/article/details/118558351