1. 权限边界概述:什么是数据共享权限、为什么需要权限边界、核心原则

好,咱们直接进入正题。数据共享中的权限边界,说白了就是回答三个问题:谁能看?能看什么?能干什么?

我做了这么多年权限设计,发现很多团队一开始都栽在同一个坑里——觉得权限就是「给个角色、打个勾」就完事了。等你数据量上来、业务复杂了,才发现到处都是漏洞。

1.1 什么是数据共享权限

数据共享权限,就是一套规则。它决定了:

  • 谁可以访问哪些数据
  • 在什么条件下可以访问
  • 能对数据做什么操作(读、写、删、导出)

举个例子。你公司有个客户信息表。销售能看到客户手机号,但客服只能看到客户姓名和订单状态。这就是权限在起作用。

核心要点:权限不是「有」或「没有」的二选一。它是多维度的组合——用户维度、数据维度、操作维度、环境维度。

我个人习惯把权限拆成三层来看:

  1. 身份层——你是谁?(用户、角色、组织)
  2. 资源层——你要碰什么?(表、字段、文件、API)
  3. 动作层——你能做什么?(增、删、改、查、导出)

这三层组合起来,才是一个完整的权限定义。

1.2 为什么需要权限边界

你想想看,如果没有权限边界会怎样?

我在项目中遇到过一家做金融科技的公司。他们早期为了开发效率,所有工程师都能直接连生产数据库。结果有一次,一个实习生写了个死循环查询,直接把数据库拖垮了,线上交易停了40分钟。

这就是没有权限边界的典型后果:

风险类型 具体表现 真实案例
数据泄露 不该看的人看到了敏感数据 某电商客服查询CEO的订单记录
数据篡改 非授权人员修改了关键数据 实习生误删生产库用户表
合规风险 违反GDPR、等保等法规 某医疗APP因权限过宽被罚200万
运维事故 误操作导致服务不可用 全量数据导出压垮数据库

嗯,这里要注意——权限边界不是用来「限制业务」的,它是用来保护业务的。没有边界的数据共享,就像没有护栏的悬崖。

1.3 权限边界的核心原则

做权限设计,有两个原则我建议你刻在脑子里。一个是最小权限,一个是职责分离。

1.3.1 最小权限原则

什么意思?就是给一个人刚刚好的权限,不多给一分。

我曾经帮一家物流公司做权限整改。发现他们的仓库管理员居然有「删除订单」的权限。你想想,仓管只需要扫码出库,为什么要能删订单?这就是典型的权限过度。

我的经验:最小权限不是「能少给就少给」,而是「给到刚好能完成工作的最小集合」。少给了,业务跑不动;多给了,风险敞口大。

落地时我一般这么操作:

  • 先问清楚这个角色必须做什么
  • 只给这些操作对应的权限
  • 定期审计,收回不再需要的权限
  • 默认拒绝,按需开放

1.3.2 职责分离原则

这个原则更关键。它说的是:关键操作不能由同一个人完成全部步骤。

举个例子。财务系统里,「创建付款单」和「审批付款单」必须是两个人。如果同一个人既能创建又能审批,那他把钱转给自己都没人知道。

为什么会这样?因为权限集中会带来舞弊风险。这不是不信任员工,而是制度上要避免「一个人说了算」的情况。

避坑提醒:我曾经见过一家公司,为了「效率」,让运维同时拥有「代码部署」和「数据库变更」的权限。结果一次误操作,把测试环境的脚本直接跑到了生产库上。嗯,从那以后,我再也不敢把这两个权限放给同一个人。

职责分离的常见场景:

业务场景 应分离的职责 风险点
财务付款 创建付款单 ≠ 审批付款单 资金被挪用
代码发布 开发代码 ≠ 部署上线 恶意代码被直接发布
数据导出 申请导出 ≠ 审批导出 敏感数据被批量泄露
权限管理 授予权限 ≠ 审计权限 权限被滥用无人发现

1.4 知识体系总览

下面这张图,是我自己梳理的权限边界知识框架。你可以把它当作本章的「地图」:

权限边界知识体系 权限边界 1. 什么是权限 2. 为什么需要边界 3. 核心原则 身份层:谁 资源层:什么数据 动作层:增删改查 数据泄露风险 数据篡改风险 合规与运维风险 最小权限原则 职责分离原则 核心思想 权限边界 = 谁(身份) + 对什么(资源) + 做什么(动作) 设计原则:最小权限 + 职责分离

这张图把本章的核心内容串起来了。你可以看到,权限边界不是孤立的概念——它从「定义」出发,经过「为什么需要」的驱动,最终落到「两个核心原则」上。

好了,这就是权限边界的全貌。记住:权限设计不是一锤子买卖。它需要随着业务变化持续调整。我见过太多团队一开始设计得挺好,半年后权限就乱成一锅粥。所以,定期审计、持续优化,才是长久之道。