档案数字化管理系统手记:档案权限模型——全宗-门类-案卷-文件四级控制的设计与实践
2026/9/7 20:49:19 网站建设 项目流程

我们做纸质档案数字化、电子档案管理系统、数字档案室建设,文中所有数据与踩坑均来自真实项目。
有档案数字化需求或技术交流,欢迎私信/评论区留言。

一、档案权限的特殊性:不是"用户-角色"就完了

一般业务系统的权限是"用户 → 角色 → 功能菜单"(RBAC)。档案系统在此基础上还有一层数据级权限——档案的可见范围是树状的:

全宗(一个单位/机构的所有档案) └─ 门类(文书、科技、会计、人事、照片…) └─ 案卷(一卷档案) └─ 文件(卷内具体文件)

一个用户可能:能看 A 全宗文书档案的案卷级,但不能看 B 全宗;能看人事档案的文件级(因为他是人事科的),但看不到会计档案。权限要能作用到树的每一层,且层级间要能继承和覆盖。

二、四级权限模型的设计

核心设计:权限作用域 + 层级继承

权限 = 用户 × 操作(查看/下载/打印/编辑/删除) × 作用域(全宗/门类/案卷/文件)

四个层级:

层级权限粒度典型授予对象说明
全宗级能看该全宗全部档案档案馆管理员最高数据级授权
门类级能看该门类全部档案各科室(人事科看人事类)最常见的授权粒度
案卷级能看指定案卷项目组、借阅人借阅授权通常到案卷
文件级能看指定文件单个申请最细粒度,如某份合同

继承规则(关键)

  • 默认向下继承:全宗级授权 → 自动覆盖其下所有门类/案卷/文件;
  • 允许向上覆盖:门类级的"禁止"可以覆盖全宗级的"允许"(比如某人能看全宗,但某门类是绝密,单独设为禁止);
  • 显式 > 继承:文件级单独授权优先于继承来的案卷级权限。
defcan_access(user,archive_node,action):"""判断用户对某个档案节点的访问权限"""# 逐级向上找权限:文件 → 案卷 → 门类 → 全宗node=archive_nodewhilenodeisnotNone:perm=get_perm(user,node,action)ifperm=="deny":returnFalse# 显式禁止,立即拒绝ifperm=="allow":returnTrue# 显式允许node=node.parent# 未设置,向上继承returnFalse# 全链路未授权,默认拒绝

默认拒绝(deny by default)是档案权限的铁律——没有授权就是不能访问,绝不默认放行。

三、权限的落地实现

实现方式对比

方式优点缺点适用
数据库逐条存储权限直观、可审计权限记录量大(几千万档案逐条授权不现实)小体量、借阅授权
角色 + 规则表达式灵活、存储小规则复杂难排查中体量
树节点授权 + 继承兼顾粒度与存储量实现稍复杂生产推荐

我们的实现:树节点授权

  • 档案树(全宗/门类/案卷/文件)上,授权只挂在"授权点"节点(通常是门类和案卷),文件级授权按需挂;
  • 权限查询走缓存(节点权限树缓存 + 变更失效),避免每次访问都遍历数据库;
  • 审计记录:每一次"权限授予/撤销"都记日志(谁、对谁、授了什么、谁批准的)。

权限与检索的联动

第 19 篇提到"权限过滤进索引"——检索时也要做权限收敛:

用户检索 → 查出候选文档 → 按权限过滤(ES filter + 应用层校验)

双保险:ES 里用 permission_tag 粗筛(快),应用层再按树权限精校验(准)——防止绕过检索接口直接拼文档 ID 读取。

四、涉密档案的强化控制

涉密档案(涉密单位的绝密/机密/秘密档案)权限要特殊处理:

  1. 物理隔离:涉密档案系统和普通系统分离部署(物理隔离或网闸),涉密数据不进公网;
  2. 三员分立:系统管理员(管系统)、安全保密管理员(管权限)、安全审计员(管审计)三个角色相互独立、相互制约——一人不能同时兼任两个角色,这是保密要求(依据涉密信息系统分级保护要求);
  3. 双人授权:访问涉密档案需要两个授权人审批;
  4. 终端管控:涉密档案下载/打印走审批,带水印、绑定终端。

五、踩坑记录

坑 1:权限判断放在前端。早期版本前端根据角色隐藏按钮,后端不校验——结果有人直接调 API 绕过。教训:所有权限判断必须在后端,前端只是体验优化,不是安全边界。

坑 2:借阅到期权限不回收。借阅授权到期后没自动回收,读者一直能看。解法:授权带有效期 + 定时任务到期回收 + 到期提醒(到期前 3 天提醒续借或归档)。

坑 3:权限变更不通知。有人被撤权后,会话里还残留旧权限缓存。解法:权限变更 → 缓存失效 → 强制重新加载;敏感权限变更(撤权)立即踢下线重登。

坑 4:导出环节权限绕过。用户能看某些档案,但系统"批量导出"功能把整卷导出(包含他没权限的文件)。解法:导出前按单文件权限过滤,无权限的文件跳过并在导出清单里标注。

六、权限模型给客户的价值

权限模型是档案系统"专业性"的直接体现,也是项目验收重点:

  • 客户问"你们系统怎么保证档案安全"——四级权限模型 + 默认拒绝 + 审计留痕,就是答案;
  • 涉密客户问"能不能过保密要求"——三员分立 + 物理隔离 + 双人授权,是硬指标;
  • 档案馆长问"谁看过这份档案"——审计日志一查便知。

七、小结

  • 档案权限 = RBAC(功能权限)+四级数据级权限(全宗/门类/案卷/文件);
  • 授权挂树节点 + 层级继承 +默认拒绝,是生产可行的模型;
  • 检索、导出、借阅等所有出口都要做权限校验(后端强制);
  • 涉密场景:物理隔离 + 三员分立 + 双人授权;
  • 权限变更要失效缓存、审计留痕。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询