2. 批记录电子签名与审计追踪配置

签名规则与审计追踪的配置对象

本案例在批记录系统中完成三件事:为操作员与复核员配置两级电子签名规则、开启审计追踪并指定需要记录前后值的字段、验证签名后的记录处于不可修改状态。配置前先明确系统中的四个可配置对象,它们共同决定签名与审计是否有效。

  • 签名策略(Signature Policy):定义签名层级、签名含义、触发时机与身份验证方式。
  • 角色—权限绑定:操作员(Operator)与复核员(Reviewer)分别绑定到不同签名槽位,禁止同一人同时占用两个槽位。
  • 审计追踪字段清单:指定哪些字段在修改时记录旧值、新值、修改人、时间戳与修改原因。
  • 记录状态机:控制记录在“草稿—已签名—已锁定”之间的迁移,锁定后禁止任何写入。
配置对象 签名策略 两级签名 · 含义声明 密码+工号二次验证 角色—权限绑定 Operator / Reviewer 互斥校验 审计追踪字段清单 投料量 / 温度 / 压力 时间 / 操作人 旧值→新值 + 原因 记录状态机 草稿 → 已签名 → 已锁定 锁定后写入拒绝 哈希校验防篡改 签名与锁定流程 ① 操作员填写批记录 字段变更即写入审计追踪 ② 操作员签名(第一级) 含义:本人确认数据真实 ③ 复核员签名(第二级) 含义:本人已复核并批准 ④ 记录锁定 生成签名哈希,禁止修改 ⑤ 验证:尝试修改被拒 审计追踪可查签名与变更 审计追踪记录项 字段名:投料量 旧值:1200.0 kg 新值:1215.0 kg 修改人:OP-0231 时间戳:2025-03-11 09:42:17 修改原因:补加催化剂 签名引用:SIG-OP-0091 锁定后写入:拒绝 返回“记录已锁定”错误

签名策略的关键参数配置

签名策略需要落到具体参数上,否则“两级签名”只是口号。以下参数表可直接作为配置依据,示例值按常见批记录系统设定,实际实施时按企业SOP调整。

参数示例值作用与判断依据
签名层级数2操作员签名 + 复核员签名,缺一不可锁定
签名含义文本“本人确认数据真实”“本人已复核并批准”签名时必须显示,签名人确认后才生效
身份验证方式工号 + 密码(二次验证)仅密码不足以证明签名人身份
签名顺序约束先操作员后复核员复核员签名前操作员签名必须存在
互斥校验启用同一账号不得同时占用两个签名槽位
签名后锁定启用两级签名完成后记录进入锁定状态
审计字段范围投料量、温度、压力、时间、操作人与批记录模板关键字段一致
审计记录内容旧值、新值、修改人、时间戳、原因缺任一项则追溯链不完整

审计追踪字段的配置与验证

审计追踪不是“打开开关”就完成,必须逐字段确认修改前后值被记录。以投料量字段为例,配置后执行一次受控修改,检查审计记录是否包含完整六要素:字段名、旧值、新值、修改人、时间戳、修改原因。若缺少修改原因,则需在字段属性中把“修改原因必填”设为是。

// 审计追踪字段配置示例(伪配置结构,按系统实际语法调整)
audit_trail:
  enabled: true
  fields:
    - name: charge_amount        # 投料量
      capture_old_value: true
      capture_new_value: true
      require_reason: true
    - name: reactor_temp         # 反应温度
      capture_old_value: true
      capture_new_value: true
      require_reason: true
    - name: reactor_pressure     # 反应压力
      capture_old_value: true
      capture_new_value: true
      require_reason: true
    - name: operation_time       # 操作时间
      capture_old_value: true
      capture_new_value: true
      require_reason: false
    - name: operator_id          # 操作人
      capture_old_value: true
      capture_new_value: true
      require_reason: true
  record_signer: true            # 记录签名引用
  record_timestamp: true         # 记录服务器时间戳
  immutable_after_lock: true     # 锁定后禁止写入

签名后不可篡改的验证方法

验证分三步,每步都有明确的通过条件:

  1. 签名完整性验证:分别以操作员和复核员账号登录,确认两个签名槽位均有签名记录,且签名含义文本与实际显示一致。通过条件:两个槽位均非空,签名人账号与角色匹配。
  2. 锁定状态验证:两级签名完成后,尝试用操作员账号修改投料量字段。通过条件:系统返回“记录已锁定,禁止修改”类错误,字段值保持不变。
  3. 审计追踪完整性验证:在锁定前执行一次受控修改,查询审计追踪,确认该次修改记录了旧值、新值、修改人、时间戳和原因。通过条件:五项信息齐全,且时间戳与操作时间一致。
若签名后仍可修改字段,优先检查“签名后锁定”参数是否启用,以及记录状态机是否把“已签名”错误地映射为可编辑状态。若审计追踪缺少旧值,检查字段的 capture_old_value 是否被关闭。

配置检查清单

  • 签名层级为2,且操作员与复核员角色已绑定到不同签名槽位。
  • 签名含义文本已在系统中维护,签名时强制显示。
  • 互斥校验已启用,同一账号无法完成两级签名。
  • 审计追踪覆盖投料量、温度、压力、时间、操作人五个关键字段。
  • 每个审计字段均记录旧值、新值、修改人、时间戳;关键字段要求填写修改原因。
  • 两级签名完成后记录自动锁定,锁定后写入被拒绝。
  • 已执行一次受控修改并核对审计记录六要素齐全。