行级数据权限
全部 / 部门 / 部门及以下 / 仅本人 / 自定义,由数据访问层统一注入。
范围
| 范围 | 含义 | 典型使用者 |
|---|---|---|
| 全部 | 不看数据边界 | 系统管理员 |
| 部门 | 仅本部门数据 | 部门负责人 |
| 部门及以下 | 本部门及其子部门 | 多级组织的管理者 |
| 仅本人 | 只看自己的数据 | 普通成员 |
| 自定义 | 指定若干部门 | 跨部门协作岗位 |
注入位置
范围条件由数据访问层统一注入,业务代码不感知、也不需要每次手写判断。这是它和"每个 Service 里 if 一下"的根本区别:后者一定会漏。
手写 SQL 的注意点
- 走框架查询能力的语句自动带上范围条件。
- 手写 XML 不受自动注入覆盖,需要自行带上范围与逻辑删除条件。
- 多表 join 的排序键要用白名单,不要拼接未经校验的排序串。
排查建议
- 先用高权限账号确认数据本身存在,排除查询条件问题。
- 再看该账号的角色绑定的数据范围,确认范围配置。
- 最后看这条查询是否走了手写 SQL。
最后更新 2026-10-09编辑此页 →