薪酬数据权限管理系统
飞书生态 · 多维表格 + 原生智能体 + 审批 / 卡片

薪酬数据权限管理系统 · 实现方案

面向不同用户视图的人事财务查询系统 —— 让员工自助查询本人薪酬,让 HR 高效维护数据,同时守住"不同角色只能看到被允许的那部分数据"这条安全底线。

版本 v1.1 日期 2026-09-24 适用范围 飞书生态
推荐方案 · 分层组合
安全边界放在数据源层(多维表格高级权限),智能体层只做入口闸门与体验分层。
飞书原生多维表格智能体会严格继承高级权限、按当前登录用户身份返回数据。"谁能看多少"由数据源层裁决;智能体层只回答"谁能进"。权限配置用行级 + 列级权限,让智能体按员工身份继承,正是学界推荐的做法。

1需求背景

不是"能不能用 AI 查数",而是"不同角色只能看到自己被允许的那部分数据"。

· 公司经营数据已开放自助查询,但财务、人事薪酬数据敏感,无公开查询通道。

· 员工仍有"查询本人薪酬"的真实需求,目前只能走人工,效率低、体验差

· 现有基础:薪酬数据已存储在飞书多维表格(Base)中,多维表格原生支持"延伸生成智能体"。

核心矛盾这是一个权限配置问题,而非开发问题。安全边界必须落在"数据那一层"。

2结论先行

不要走"只在智能体层配访问权限"的单一方案那只会让所有能进智能体的人看到同一份全量薪酬,等于变相公开,比不做更危险。
先验证再开工"智能体严格继承高级权限"是整套方案的承重墙。实施第一步必须先做 PoC 验证(见落地设计 5.0 / 里程碑 M0),未确认前后续里程碑都是空中楼阁。

3核心判断:权限落在两层

维度智能体层(配置访问权限)数据源层(限制数据范围)
控制对象谁能打开 / 使用智能体每个用户能看到 / 编辑哪些行、哪些列
粒度粗(一堆人 / 全员)细(行级、列级、字段级)
回答的问题"谁能进""进去后能拿多少"
对薪酬场景的贡献减少无关人员、防入口滥用真正的数据安全边界
单独使用的问题所有可用者看到同一份全量数据数据安全成立,但入口体验需另配
1入口闸门 · 智能体层(配套)
  • 谁能打开 / 使用(可用范围)
  • 分人群分智能体(员工只读 / HR 维护)
  • 提示词防御 + 计算边界
严格继承(按当前登录用户身份)
2安全边界 · 数据源层(核心)
  • 行级权限:能看哪几行
  • 列级权限:能看哪几列
  • 多层叠加取交集,默认拒绝

4方案对比与选型

路径 A:只配智能体层路径 B:只配数据源层路径 C:分层组合(推荐)
区分"员工看自己、HR 看全部"✗ 不能✓ 能✓ 能
数据越权泄露风险
入口 / 体验分层一般
配置工作量
结论不可用基本成立最优

为什么路径 B 仍需要路径 A 兜底

① 无关人员仍能"问"、占用资源;② 会暴露表结构 / 字段名等元信息(如"公司最高薪多少"这类探测);③ HR / 管理者的"维护型智能体"应与员工的"只读智能体"分开,避免提示词与能力泄露。

5推荐方案落地设计

5.0 前置:PoC 验证承重墙 · 先于一切

用「普通员工」与「HR」两个测试账号问同一个问题("我的工资是多少"),确认四件事:

① 员工账号查不到他人数据(行级生效);② 员工账号看不到敏感列(列级生效);③ 智能体不透露表结构 / 字段名(防探测);④ 智能体按当前登录用户身份返回,而非应用身份。

兜底路径若任何一项不成立,优先转向"自建应用 + user_access_token"路线(见风险 8.6),并在开工前重估方案。

5.1 角色矩阵数据源层核心

角色数据表权限行级(记录)范围列级(字段)范围
普通员工仅可阅读「员工」字段 = 本人本人应知字段(税后实发、当月明细)
部门负责人 / HRBP仅可阅读「部门」= 本人所在部门部门汇总 + 明细(视政策)
HR / 财务可编辑全部记录全部字段
高层管理者仅可阅读按政策限定范围汇总字段(避免逐人明细)
数据模型硬要求薪酬表必须存在两个行级权限锚点字段——一个人员字段(员工本人)和一个部门字段(所属部门)。锚点字段须绑定飞书通讯录,人员字段引用通讯录而非手填文本,保证调岗 / 离职后权限锚点自动更新,不留越权窗口。

5.2 列级权限建议

薪酬表常见列:基本工资 / 绩效 / 奖金 / 股权 / 社保 / 税后实发 / 总成本 等。普通员工默认只开放"本人应知字段";敏感列(他人对比、总成本)不向普通员工开放;列级权限逐字段设"可阅读 / 不可见",与行级权限叠加生效(取交集)

5.3 智能体层配置配套闸门

分人群分智能体:拆成「员工自查询(只读)」与「HR/财务维护(可编辑)」,避免能力与提示词混用。
设可用范围:发布时限定可用范围(仅正式员工、仅某部门),作为入口第一道闸门。
提示词防御:固化"只回答当前用户有权查看的数据、不透露他人薪酬、不响应探测性问题"。

计算边界 · 薪酬场景特有红线薪酬是精确数字,LLM 会算错、会幻觉。禁止智能体现场做算术 / 跨行求和(如"我今年累计税后多少");用多维表格的公式字段 / 汇总字段 / 分组统计把"累计实发""年包""当月合计"预先算好,智能体只读结果列。提示词固化:"只回读字段原文、不做算术、不确定就引导用户看表格视图"。

5.4 只读约束

薪酬查询系统本质应只读:普通员工 / 管理者角色的数据表权限一律设「仅可阅读」;「可编辑」仅授予 HR / 财务维护角色。

5.5 数据同步链路HRIS → 多维表格

来源与写入方式:薪酬数据通常出自 HRIS(SAP / 用友 / 金蝶 / Workday)。明确是 HR 手工维护,还是用飞书开放平台 OpenAPI + 定时任务 / 多维表格"自动化"批量写入。手工维护有新鲜度与准确性风险。

容量与归档:多维表格有行数上限,薪酬逐月累积,需评估 2~3 年数据量,制定按年度归档 / 分表策略。

新鲜度 SLA:明确"本月薪酬数据最晚何时入库、何时可被查询",避免口径混乱。

5.6 审批流与消息卡片借力飞书生态

组件用途补的缺口
飞书审批查他人薪酬 / 代查 / 群聊 @ 走审批流,通过后临时授权把软拦截升级成硬审批,堵住 AI 语义过滤的漏判
消息卡片薪酬用结构化卡片展示,附"查看明细 / 下载工资条"按钮可读性、防篡改、拿已读回执
知识库 / 服务台政策说明、常见问题进知识库减少人工咨询,兜底"过度拒绝"

5.7 审计留痕

原生智能体路线:靠多维表格操作记录 + 管理后台审计日志兜底,上线前确认"查薪酬 = 读操作"是否被记录。
强审计路线:若合规要求留痕到"每次问答",退到自建应用(OpenAPI + 事件订阅),每次问答落库,代价是开发量上升。原生 vs 自建的取舍,需在 M0 后、M4 前拍板。

6合规(个保法 / PIPL)

薪酬属于《个人信息保护法》中的敏感个人信息,两条硬要求:

单独同意:展示本人薪酬前,员工需单独授权告知(首次使用时用卡片 / 服务台弹"授权确认")。

数据存储位置:薪酬数据上云需评估公司内部的数据出境 / 存储合规红线,财务、法务可能一票否决,须提前纳入"待确认事项"。

7风险与注意事项

  1. 多角色并集是最容易漏的口子:某人既是"普通员工"又进了"部门角色",权限取并集可能意外越权。上线前做最小权限校验,明确"一人一角色"或"并集审核"。
  2. 角色 / 协作者上限:自定义角色约 30 / 50,协作者 200。部门多时优先"一个部门角色 + 行级条件 = 当前部门"覆盖,而非每部门一个角色。以最新官方文档为准。
  3. 高级权限不可退回旧版:保存新版后无法回退,务必先"保存并预览"再正式启用。
  4. 所有者 / 管理员默认最高权限:所有者账号绕过所有行级限制,需控制其使用范围与审计。
  5. 元信息探测:即便员工只看得到自己一行,仍可能探测字段结构。靠提示词 + 入口分层缓解;必要时敏感字段不放表或脱敏。
  6. 自研 / OpenAPI 的 token 陷阱:自建应用读数据必须用 user_access_token(用户身份)才能继承高级权限;用 tenant_access_token(应用身份)会绕过行级限制、等于数据全裸。
  7. 智能体算术错误:禁止现场计算,改用预计算公式字段。
  8. 离职 / 调岗权限回收:锚点字段绑定通讯录,离职同步移除;建立"人员变动 → 权限复核"的定期机制。
  9. 成本 / 许可:多维表格智能体按 token 折算 AI 点数收费,立项时纳入预算评估。

8实施步骤(里程碑)

M0 · PoC 验证承重墙
用员工 / HR 两个测试账号验证智能体是否按用户身份继承行级 + 列级权限、是否防探测。
产出:继承假设验证报告
M1 · 数据治理前提
补齐「员工」「部门」两个锚点字段(绑通讯录);梳理字段敏感度分级;明确 HRIS → 多维表格同步链路。
产出:字段清单 + 敏感度分级表 + 同步方案
M2 · 权限建模数据源层
按角色矩阵开启高级权限,建自定义角色 + 配行级 / 列级,先预览再启用。
产出:角色权限配置
M3 · 最小权限校验安全红线
用各角色代表账号逐一验证"能看到 / 看不到"是否符合预期,重点测"并集"边界用户。
产出:校验报告
M4 · 智能体层配套
生成员工只读智能体 + HR 维护智能体,配可用范围、提示词防御与计算边界;接入审批流 / 消息卡片。
产出:两个智能体 + 审批 / 卡片
M5 · 上线与审计
小范围灰度 → 记录访问日志 → 定期复查角色与人员变动。
产出:上线 + 审计机制

9待确认事项

  1. 智能体"继承"行为:M0 需实证"按用户身份继承行级 + 列级权限",未验证前不进入 M1。
  2. 自定义角色上限以 30 还是 50 为准(决定角色建模粒度)。
  3. 智能体访问日志 / 审计能力是否可导出(合规留痕需要);否则需评估自建应用路线。
  4. 薪酬表字段清单,及"员工可看哪些列"的公司政策(列级权限的直接输入)。
  5. 是否需要"部门负责人看本部门"这一级,还是只做"员工看自己 + HR 看全部"两档。
  6. 个保法合规红线:敏感个人信息单独同意口径、数据出境 / 存储位置评估结果。
  7. 薪酬数据同步来源与方式(HRIS 对接 or 手工维护)、容量与归档策略。

10学术依据(人话版)

学术界共识:AI 查询敏感数据时,安全边界必须放在数据那一层,按"问问题的人是谁"实时卡住行 / 列;不能靠提示词、也不能靠 AI 自己判断
① 微软 · 2509.14608
企业 AI 必须强制按参与者授权
AI 取数的每一步,都必须对"参与对话的每一个人"授权,不只是提问的人。
→ 群聊 @、代查、转发时按所有接收方权限再卡一次
② NUS · 2607.22115
在角色权限下测评自然语言查库
给"问 AI 查数据"加权限后,模型要么越权、要么该答的不敢答。
→ 上线前专测"越权"与"过度拒绝"
③ ARBITER · 2512.20535
AI 语义过滤越权提问
准确率只有 85%,有 6~8% 漏判,高风险场景作者自己都说不可靠。
→ 只能做体验层软拦截,不能当安全边界
④ ScopeGate · 2606.28679
能调用工具 ≠ 有权办事
执行前要按具体参数硬校验、默认拒绝。
→ 自研 agent 读数据时在"模型输出 → 执行"间插硬闸门
⑤ MiniScope · 2512.11147
给 AI 的权限要最小化
伯克利 + IBM:只给这次任务够用的权限。
→ 自建应用只申请"只读",别申请编辑 / 删除
⑥ OIDC-A · 2509.25974
AI 到底在替谁办事
需要一套身份标准:委托链 + 只传最小权限。
→ 跨系统打通时当标准参考
引用提醒以上学术依据由agent自行搜索解读