系统权限如何设计更合理
系统权限设计是确保企业数据安全和高效运作的关键。通过全面考虑功能权限、数据权限以及租户概念,并合理设计权限结构,企业可以确保数据的安全性、完整性和可用性,支持业务发展和决策,并避免重复造轮子工作。
系统权限设计:从功能权限到数据权限的重点解析。
在现今的企业环境中,系统权限设计是确保数据安全和企业运作顺畅的关键。本文将详细解析系统权限设计的各个方面,包括数据权限、功能权限以及权限赋予的结构。
一、功能权限
菜单权限:涉及对系统菜单的访问控制。
控件权限:细分为新增、删除、编辑、查询、导出、详情和审核等操作。
二、数据权限
核心概念:控制用户在相同功能下可查看的数据量。
实现方式:通常通过通用字段如地区、组织实现。例如,部门只能查看本部门数据,而部门主管可见下属所有数据。
三、权限赋予的结构
功能权限本质上是通过菜单权限分配给对应的角色,然后将需要的用户添加到对应的角色中。因此,真正拥有权限的不是单个用户,而是用户的集合所属的角色。这种权限模型是基于RBAC的(基于角色的访问控制)。
四、重点考虑因素
- 数据使用者
- 数据生产者
a、角色定义:
- 数据生成者:通常指的是创建、录入或修改数据的用户或系统。
- 数据使用者:是指访问、查看或使用数据的用户或系统。
b、区别:
- 数据生成者通常具有对数据的修改权限,能够创建、修改或删除数据。
- 数据使用者则主要关注数据的查看和使用,通常没有修改数据的权限。
c、联系:
- 数据生成者和数据使用者可能存在于同一系统中,也可能存在于不同的系统中。
- 在某些情况下,一个用户可能既是数据生成者又是数据使用者,例如,一个员工在录入自己的考勤数据时,既是数据的生成者,也是数据的使用者。
d、为什么要区分它们:
- 数据安全性:通过区分数据生成者和数据使用者,可以更好地控制数据的访问权限,确保只有经过授权的人员能够访问和使用数据,防止数据泄露和非法访问。
- 数据准确性:数据生成者通常具有对数据的修改权限,如果一个用户既是数据生成者又是数据使用者,那么他可能会不小心修改了数据,导致数据不准确。通过区分这两个角色,可以避免这种情况的发生。
- 职责明确:通过明确区分数据生成者和数据使用者,可以明确各自的职责和权限,避免出现职责不清或权限冲突的情况。
五、租户概念
在多租户系统中,租户之间不能相互操作对方的数据,仅有数据共享的权限。这是为了确保每个租户的数据安全和独立性,共享性。
需要说明的是,有些权限设计中,租户间是相互隔离独立的,既不能操作,也不能共享信息。实际场景中例如 tog 的业务中会出现省级平台需要看到市级平台的数据且市级平台是另外定制的,他是不同于省级平台的,那么省级平台需要管理到市级。根据工作的实际情况也是可以设计为:
多租户系统:租户间数据操作和共享的控制,保证数据安全和独立性。
定制化设计:根据实际业务需求,租户间可能实现数据查看或完全隔离。
六、权限的功能清单
- 菜单管理
- 角色管理
- 用户管理
- 组织管理(可有,可无根据实际业务来定,一般小公司小组织不需要这个)
- 系统管理(如果做统一权限管理的话就需要这个,一个权限管理系统管理所有系统的用户权限。如果做了统一管理权限,那么就会涉及到单点登录的设计)
本文由 @两颗小牙 原创发布于人人都是产品经理。未经许可,禁止转载
题图来自 Unsplash,基于 CC0 协议
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。
- 目前还没评论,等你发挥!