缓存标识:338c6702f387bdf68a904d567f5cfca6
更新时间:2026-01-02 15:49
数据权限系统设计需求分析
一、 核心业务实体识别
1.1 用户
1.1.1 用户属性
用户ID
用户名
所属组织
角色列表
1.2 角色
1.2.1 角色属性
角色ID
角色名称
角色层级
功能权限集合
数据权限规则集合
1.3 组织
1.3.1 组织属性
组织ID
组织名称
组织类型
父组织ID
组织路径
1.4 数据资源
1.4.1 资源属性
资源ID
资源类型
资源所属组织
资源创建者
资源关联的业务数据
二、 权限控制功能模块
2.1 角色定义与管理【常规 CRUD 功能】
2.1.1 功能描述
管理系统中所有角色,包括角色的增删改查、权限分配。
2.1.2 功能类型
CRUD
2.1.3 列表字段
角色名称(文本,支持排序)
角色编码(文本,支持排序)
角色层级(文本,支持排序)
描述(文本)
创建时间(日期时间,支持排序)
操作(编辑、删除、权限配置)
2.1.4 表单字段
角色名称(文本输入,必填,长度限制1-50字符)
角色编码(文本输入,必填,唯一性验证,长度限制1-20字符)
角色层级(下拉选择,必填,选项:系统级、组织级、项目级、个人级)
描述(文本域,非必填,长度限制0-200字符)
2.1.5 筛选字段
角色名称(文本搜索)
角色编码(文本搜索)
角色层级(下拉选择)
创建时间范围(日期范围选择)
2.1.6 用户角色
系统管理员
2.1.7 数据范围
全局数据,无隔离
2.2 功能权限配置【常规 CRUD 功能】
2.2.1 功能描述
为角色分配可访问的菜单和可执行的操作(增删改查、导入导出等)。
2.2.2 功能类型
配置管理
2.2.3 关键信息
配置方式:基于角色的树形菜单/操作点勾选。
权限项:菜单权限、按钮权限、API接口权限。
权限继承:子角色默认继承父角色的功能权限,可被覆盖。
2.2.4 用户角色
系统管理员
2.2.5 数据范围
全局数据,无隔离
2.3 数据权限规则配置【常规 CRUD 功能】
2.3.1 功能描述
定义角色对业务数据的访问范围规则。
2.3.2 功能类型
配置管理
2.3.3 配置类型
按组织隔离
按用户隔离(本人数据)
按项目隔离
自定义条件(基于SQL或表达式)
2.3.4 配置项
规则名称(配置名称)
目标资源类型(配置范围,如:客户数据、订单数据)
权限类型(配置值,如:查看、编辑、删除)
数据范围条件(配置值,如:organization_id IN (当前用户所属组织及所有下级组织))
生效规则(配置范围,如:对指定角色生效)
2.3.5 用户角色
系统管理员、组织管理员
2.3.6 数据范围
系统管理员可配置全局规则;组织管理员仅可配置本组织及下级组织的规则。
2.4 用户角色分配【常规 CRUD 功能】
2.4.1 功能描述
为用户分配一个或多个角色。
2.4.2 功能类型
CRUD
2.4.3 列表字段
用户名(文本,支持排序)
所属组织(文本,支持排序)
分配的角色(文本列表)
操作(编辑角色)
2.4.4 表单字段
用户选择(下拉选择/用户搜索,必填,支持多选)
角色分配(树形选择/复选框,必填,支持多选)
2.4.5 筛选字段
用户名(文本搜索)
所属组织(树形下拉选择)
角色(下拉选择)
2.4.6 用户角色
系统管理员、组织管理员
2.4.7 数据范围
系统管理员可为所有用户分配角色;组织管理员仅可为本组织及下级组织的用户分配角色。
三、 数据权限执行与验证模块
3.1 权限拦截与过滤
3.1.1 功能描述
在用户访问数据时,根据其角色和数据权限规则,动态拼接数据过滤条件(如SQL WHERE子句)。
3.1.2 功能类型
数据监控
3.1.3 关键信息
执行时机:数据查询(列表、详情)前自动触发。
输入参数:当前用户信息、用户角色、请求的资源类型和操作。
输出内容:合成后的数据范围查询条件。
规则合并:用户拥有多个角色时,取所有角色数据权限的并集。
3.2 数据权限预览与测试
3.2.1 功能描述
供管理员预览特定角色或用户在特定模块下能看到的数据范围。
3.2.2 功能类型
数据监控
3.2.3 关键信息
触发条件:管理员手动选择用户/角色和资源类型进行测试。
输入参数:目标用户/角色、目标资源类型(如“订单列表”)。
输出内容:模拟生成的查询条件,或返回符合条件的数据样例。
展示方式:以文本形式展示SQL条件片段,或列表形式展示样例数据。
四、 组织架构管理模块【常规 CRUD 功能】
4.1 功能描述
管理公司、部门、团队等多层级组织树,作为数据权限(按组织隔离)的基础。
4.2 功能类型
CRUD
4.3 列表字段
组织名称(文本,支持排序)
组织编码(文本,支持排序)
组织类型(文本,支持排序)
负责人(文本,支持排序)
排序号(数字,支持排序)
操作(新增子组织、编辑、删除)
4.4 表单字段
组织名称(文本输入,必填,长度限制1-100字符)
组织编码(文本输入,必填,同级唯一,长度限制1-50字符)
父级组织(树形选择,必填,根节点为“公司”)
组织类型(下拉选择,必填,选项:公司、部门、小组、虚拟团队等)
负责人(用户选择器,非必填)
排序号(数字输入,必填,默认值0)
描述(文本域,非必填)
4.5 筛选字段
组织名称(文本搜索)
组织类型(下拉选择)
4.6 导入/导出
支持Excel导入/导出组织树。
导入字段映射:组织名称、组织编码、父组织编码、组织类型、负责人账号、排序号。
导出字段:列表字段所有项。
4.7 用户角色
系统管理员、组织管理员(仅能管理自己及下级组织)
4.8 数据范围
系统管理员管理全量组织树;组织管理员管理以自己所在组织为根节点的子树。
五、 权限继承与覆盖规则
5.1 组织层级继承
5.1.1 规则描述
用户默认拥有其所属组织及其所有下级组织的数据权限(如果数据权限规则是按组织隔离的)。例如:部门经理可查看本部门及下属小组的数据。
5.1.2 数据隔离规则
数据记录通常包含organization_id或org_path字段,通过判断当前用户组织路径是否为目标数据组织路径的前缀来实现权限控制。
5.2 角色层级继承【假设补全】
5.2.1 规则描述
可以定义角色的上下级关系(如“总监”是“经理”的上级角色)。下级角色默认继承上级角色的所有功能权限和数据权限,但可以在分配时进行覆盖或细化。
5.3 用户多角色权限合并
5.3.1 规则描述
一个用户可被分配多个角色。其最终的数据权限范围是这些角色所有数据权限规则的并集(取最大范围)。
六、 特殊场景处理
6.1 本人数据
6.1.1 规则描述
配置“本人数据”规则,使用户无论组织权限如何,都能访问自己创建的数据(如creator_id = current_user_id)。此规则通常与其他组织规则并存,取并集。
6.2 跨组织协作数据
6.2.1 规则描述
对于需要跨组织共享的数据(如联合项目),可通过特定的“项目”实体进行关联,数据权限基于项目成员身份来判断,而非单纯的组织层级。
6.3 超级管理员豁免
6.3.1 规则描述
“系统管理员”角色通常不受任何数据权限规则限制,可以查看和操作全系统数据。
七、 模块关联与实体关系
7.1 实体关系识别
7.1.1 用户 对 组织
关系类型:多对一(一个用户属于一个主组织,可兼职其他组织)。
7.1.2 用户 对 角色
关系类型:多对多(一个用户有多个角色,一个角色可分配给多个用户)。
7.1.3 组织 对 组织
关系类型:一对多(树形结构,一个父组织有多个子组织)。
7.1.4 角色 对 数据权限规则
关系类型:一对多(一个角色可以配置多条针对不同资源的数据权限规则)。
7.2 模块关联
7.2.1 组织架构管理 是 数据权限系统 的基础数据模块。
7.2.2 角色管理、功能权限配置、数据权限规则配置 共同构成 权限配置中心。
7.2.3 权限执行模块 依赖 权限配置中心 的规则和 组织架构 的数据,在业务数据查询时进行过滤。
如何在应用内使用?
点击上方按钮将跳转至主应用并自动载入这份 Markdown,你可以继续修改结构并导出为 XMind。也可以复制地址 index.html?hash=338c6702f387bdf68a904d567f5cfca6 分享给团队成员快速进入编辑。