B端数据权限怎么设计?部门、本人、全部与自定义范围主题视觉

B端数据权限怎么设计?部门、本人、全部与自定义范围

作者:界达设计公司 阅读时间:约 8 分钟

隐藏菜单不等于保护数据。B端权限要同时处理对象、动作、数据范围、字段、状态和时效,并让用户知道自己为什么能看、为什么不能做。

隐藏菜单不等于保护数据。B端权限要同时处理对象、动作、数据范围、字段、状态和时效,并让用户知道自己为什么能看、为什么不能做。

01 先分清两件事:能做什么,能看哪些数据

很多系统把权限配置成一张菜单勾选表:勾选“客户管理”,用户就能进入页面;取消勾选,菜单消失。这样解决的是功能入口,不是数据边界。只隐藏菜单,接口仍可能返回不该看的客户;允许查看客户,也不代表可以导出、转交或删除。

成熟的权限模型通常至少回答四个问题:谁,在什么条件下,可以对哪一类对象,执行什么动作。角色只是其中一个输入,部门、项目成员关系、数据归属、敏感等级和临时授权同样会改变结果。

02 功能权限与数据权限不要塞进一个开关

权限层回答的问题例子
页面/模块能否进入这个业务区域?能否进入合同管理
动作进入后可以做什么?查看、新建、编辑、作废、导出、审批
数据范围动作可以作用于哪些记录?本人、部门、下属部门、全部、自定义范围
字段一条记录中哪些信息可见或可改?可见客户名称,但手机号脱敏;可看金额,不能改折扣
条件在什么状态或环境下允许?只有草稿可编辑;超过10万元需二次审批
时效授权何时开始、何时失效?项目外包成员只在合同期内查看资料

配置界面也应按这些层次组织。先选角色或用户,再选业务对象与动作,最后设置数据范围与例外。把几十个“查看本人客户、编辑本人客户、查看部门客户……”平铺成几百个复选框,短期开发简单,长期几乎无法维护。

“本人、部门、全部”背后都有边界问题的视觉化说明

03 “本人、部门、全部”背后都有边界问题

本人:按创建人、负责人还是参与人?

一条客户记录可能由A创建,交给B负责,C作为协作人参与。如果“本人数据”没有定义,权限结果会随着开发人员理解变化。建议按对象分别定义归属关系,而不是全系统共用一个owner字段。

部门:只含当前部门,还是包含下级组织?

组织架构会调整,员工也会调岗。需要确认部门范围是动态继承,还是按授权时快照固定;跨部门项目、矩阵汇报和虚拟团队是否参与计算;上级能否自动看到下级全部数据。

全部:是真的全部,还是租户内全部?

多租户SaaS中,“全部数据”通常只能指当前企业租户内全部,不能跨客户组织。平台运营人员的跨租户访问应使用独立的内部权限、审批与审计,不应复用普通企业管理员角色。

自定义范围:不要只给一串组织树

复杂业务常需要“华东区全部客户 + 全国重点客户 - 某敏感项目”。这时单纯勾部门不够,应允许按组织、项目、标签、业务线或数据属性组合规则,同时展示规则命中的样例数量,避免管理员保存了自己也看不懂的条件。

04 角色是起点,不应该成为唯一答案

RBAC适合表达稳定职责,例如销售、财务、审核员;当权限取决于数据属性和上下文时,需要加入属性或关系判断。比如“合同负责人可以编辑自己负责且处于草稿状态的合同”“项目成员只能查看其参与项目的文件”。

规则类型适合表达示例
角色规则职责相对稳定、动作集合清晰财务可以查看发票并执行核销
属性规则由数据、用户或环境属性决定仅允许查看所属区域与客户等级匹配的数据
关系规则由成员、负责人、上下级或协作关系决定项目成员可查看项目文件,项目负责人可编辑
条件规则由状态、金额、时间、设备等条件决定草稿可修改;已生效合同只能发起变更
临时授权代班、外部协作、紧急处理授权48小时,到期自动失效并通知审批人

权限界面要告诉用户“为什么不可以”的视觉化说明

05 权限界面要告诉用户“为什么不可以”

有些能力应隐藏,有些应保留但禁用。判断标准不是视觉整洁,而是用户是否知道这项能力存在,以及是否有合法路径获得它。

  • 对完全无关的模块,可以隐藏入口,减少噪声。
  • 对用户知道存在、但当前状态不允许的动作,应显示禁用并解释条件,例如“合同已生效,不能直接删除”。
  • 对需要申请的权限,提供“申请访问”或联系人,而不是只显示403。
  • 列表数量、统计卡片、搜索建议也要按同一权限范围计算,避免用汇总数字泄露数据。
  • 导出、批量操作、复制链接和API访问需要单独评估,它们往往比页面查看风险更高。

权限错误最危险的不是按钮多了一个,而是不同入口使用了不同规则:列表看不到,搜索却能搜到;页面字段脱敏,导出文件却是明文。

06 用权限矩阵把规则变成可评审的资产

角色/关系查看新建编辑删除/作废导出数据范围
销售本人是是草稿/跟进中否需审批本人负责
销售主管是是条件允许作废需审批是本部门及下级
财务合同摘要否仅财务字段否是已生效合同
项目成员是否协作字段否否参与项目
系统管理员配置可见否不默认改业务数据否审计后租户内

矩阵不是最终代码,却能帮助产品、业务、安全和开发讨论同一件事。每一格若出现“视情况而定”,就要继续写出状态、金额、归属或审批条件。

必须测试的权限场景的视觉化说明

07 必须测试的权限场景

  • 同一用户同时拥有两个角色时,权限是取并集、交集,还是显式拒绝优先。
  • 员工调岗、离职、组织合并后,历史数据与正在处理的任务如何转移。
  • 通过URL、搜索、消息通知、最近访问和导出能否绕过列表权限。
  • 用户拥有查看权限但没有字段权限时,接口是否仍返回敏感原值。
  • 批量操作中混有无权限记录时,是全部失败、跳过还是提示选择。
  • 临时授权到期、审批撤回、账号冻结后,缓存和已打开页面是否及时失效。
  • 管理员查看或代操作敏感数据时,是否记录原因、时间和影响对象。

08 权限设计常见疑问

菜单隐藏了,还需要后端校验吗?

必须需要。前端隐藏只能改善界面,用户仍可能通过接口、历史链接或其他入口请求数据。授权判断应在服务端执行,并覆盖每一次请求。

角色越多,权限是不是越精确?

不一定。角色爆炸通常意味着把数据范围、状态条件和临时关系都硬编码成角色。先分离动作与范围,再决定哪些稳定组合值得做成角色。

超级管理员是否应该拥有全部业务数据权限?

不建议默认拥有。系统配置能力与业务数据访问应分开。确需排障或代处理时,可以使用受控的临时访问、二次确认和完整审计。

权限变更需要立即生效吗?

高风险权限撤销应尽快生效,包括令牌、缓存和已打开会话。普通权限增加可以稍有延迟,但界面应提示生效状态,避免管理员以为保存成功而实际仍未同步。

09 让权限成为可解释的业务规则

权限模型不是开发末期的一张配置表,而是业务边界、组织关系和风险控制的共同表达。先把对象、动作、范围、条件和时效写清,再设计角色和界面,系统才能在组织变化后继续维护。

服务查看
UI/UX设计服务查看服务详情
项目咨询联系界达设计
设计与建站文章阅读更多相关文章
链接复制成功

从想法到落地,我们一起完成

以用户体验为核心,打造真正可用、可增长的数字产品

和我谈谈您的项目