先把保留目的寫成規則
工業資料保留不是把資料永遠堆在資料庫,而是先回答它為何要留、誰能取用、何時轉移及何時刪除。生產報表、設備事件、操作稽核、校正證據與暫存遙測的用途不同,應先建立資料分類,再給每類期限。本篇使用30天、1年、7年作為組織自訂示例,不是法律期限,也不能直接套用到任何工廠。
分類表至少包含dataClass、owner、開始日期、到期日期、保留理由、敏感程度與刪除方式。到期日應由事件日期或批次結束日推導,不要用檔案搬移日期代替。若一筆報表同時服務品質調查與稽核,應採較長的已核准期限,並記錄是哪條規則選中它。
Microsoft Purview的公開資料生命週期與Records Management文件示範以保留標籤、檔案計畫、處置審查與刪除證據管理生命週期;這支持把期限與例外寫成可追蹤規則,但它沒有替本廠指定30天或7年。
| 資料類別 | 示例期限 | 到期動作 | 責任人 |
|---|---|---|---|
| 暫存遙測 | 30天 | 刪除或彙總後刪除 | 資料平台 |
| 月報與批次摘要 | 1年 | 封存唯讀,期滿審批刪除 | 製程主管 |
| 稽核與事故證據 | 7年 | 加密封存,依核准流程銷毀 | 資安/法遵 |
刪除批次要採可重試設計。每批先鎖定一組recordId與規則版本,刪除成功才標記Deleted;部分失敗保留PendingRetry與錯誤碼。重跑時以recordId冪等處理,逾時結果未知時先查既有結果,確認冪等策略與候選清單仍適用後才重試。對無法確認結果的外部儲存,先查刪除回執或轉入人工審核。
期限 起算點與例外
先定義30天是720小時還是站點日曆日,不要把兩者混成同一規則。若批次在3月4日18:00結束,月報保存期限可定義為批次結束時間起算;若是每日遙測,則由該日分區的最後一筆有效時間起算。規則要明確處理時區、夏令時間、閏日與缺少時間戳的資料,否則同一筆資料在不同伺服器會有不同到期日。
刪除前先檢查legal hold、事故調查、客訴、未結工單與稽核案件。只要任一旗標為真,就把狀態改為Hold,不刪除並記錄原因、提出者、建立時間與解除者。Hold解除後依原起算點與適用版本檢查是否已到期,不預設暫停或重啟保留時鐘;已到期者仍經處置審查,不在解除瞬間盲目刪除,也不應因搬到封存庫就跳過檢查。
來源系統與封存系統要共享一個可查的recordId。轉移時保留原始時間戳、來源、雜湊、格式版本與權限;驗證失敗的檔案進入quarantine,不可因為已超過暫存期限而直接丟棄。
| 案例 | 事件時間 | 規則 | 結果 |
|---|---|---|---|
| 月報A | 3/4 18:00 | 1年,無Hold | 3/4次年18:00可進刪除候選 |
| 事件B | 3/4 18:00 | 7年,Hold至5/1 | 解除後核對原到期日及其他Hold |
| 遙測C | 3/4日區結束 | 30天,時間戳缺失 | 轉人工補正,不直接刪除 |
期限規則本身也要保存版本。v1可把月報定為1年,v2改成2年;已產生的月報不能因規則更新就失去原本的計算依據。每次政策變更記錄生效時間、核准人、受影響dataClass與新舊期限,刪除掃描器按資料建立時適用的版本或明確核准的回溯規則執行。
權限應按職責分離:資料owner決定用途與期限,平台管理員執行搬移,資安或稽核人員檢查紀錄,刪除核准者不能同時任意修改Hold。查詢敏感封存資料時記錄誰、何時、查了哪個recordId與目的,並把查詢紀錄套用自己的保留規則。
刪除 歸檔與可追溯性
封存不是把資料夾名稱改成archive。封存資料應限制寫入,定期確認可讀性、校驗雜湊與索引可用性;若使用壓縮或格式轉換,保留轉換工具版本與筆數核對。刪除則要先產生候選清單,由資料owner核准,再執行分區或物件刪除,最後留下刪除事件而不是保留被刪內容的副本。
管理畫面應分開顯示Active、Archived、Hold、DeleteCandidate與Deleted等狀態。Deleted狀態只保存最小稽核資訊,例如recordId、規則版本、核准人、時間與結果;不應因為想證明刪除而偷偷保存完整敏感資料。恢復要求須有權限、原因與恢復期限,恢復副本也要套用原分類。
測試時先用非正式資料建立30天到期案例,驗證到期掃描只挑選無Hold且通過校驗的資料。再讓掃描器中途失敗,確認重跑不重複刪除、不跳過失敗項目,並把每次批次的候選數、成功數、失敗數與錯誤原因寫入控制表。
備份與副本是最容易漏管的地方。主庫刪除不代表快照、異地複本、匯出的CSV與測試環境已刪除;盤點表要列出副本位置、同步延遲與刪除責任。若備份採不可變保存,應將不可變到期日納入政策,並在到期後留下可驗證的銷毀紀錄。
最低驗收證據包括分類表、期限版本、三筆到期候選、Hold阻擋紀錄、封存校驗結果、刪除回執與重跑結果。這些證據用來證明流程運作,不是把30天、1年、7年包裝成法律結論。
落地與排錯
實作順序是先盤點資料表與檔案,再為每類指定owner與期限版本,接著寫到期計算器與Hold檢查,最後接上封存及刪除執行器。任何資料來源未映射分類時,預設進Unknown佇列,不應自動套用最短30天。期限規則修改時建立新版本,歷史記錄依核准政策決定沿用原版本或回溯新規則,不自行選擇較短期限。
常見錯誤包括把備份保留當成業務保留、把刪除成功當成所有副本都刪除、只記錄檔名不記錄來源、以及用資料庫伺服器本地時間推導到期日。排查時先比對recordId與起算事件,再查時區與規則版本,最後核對主庫、封存、備份及快取的副本清單。
本篇期限是設計演練數字。正式上線前仍要由組織確認契約、事故調查、個資、出口管制與產業要求,再把核准結果寫成可版本控制的政策;本文只示範流程設計,不判定特定組織的法定期限。
安全事件期間可暫停一般清除,但暫停必須有範圍與截止日。例如只對asset A在2月1日至2月7日的事件記錄加Hold,不應把整個七年資料庫永久鎖住。解除時由案件負責人確認證據已複製到核准封存,才讓未受其他Hold的資料恢復正常生命週期。
FAQ 來源與metadata
練習以同一到期候選跑兩次預覽:第一次有案件Hold,結果應為零筆可刪且列出阻擋原因;第二次解除該Hold,但另一個調查Hold仍在,仍不可刪。只有所有適用限制解除且處置審查通過,才進入執行清單。預覽不修改資料,能先檢查規則選中了哪些記錄。
FAQ1:30天、1年、7年是法定期限嗎?不是,是本文的自訂示例,正式期限必須由組織依適用要求核准。
FAQ2:封存後就能刪除主庫嗎?只有完成可讀性、完整性、索引與權限驗證,且保留規則允許時才可刪除。
FAQ3:有Hold時到期怎麼辦?保留Hold狀態與原因,暫停刪除,解除後按規則重新計算。
FAQ4:缺少時間戳能套最短期限嗎?不能,先進人工補正或Unknown佇列並記錄風險。
參考:Microsoft Purview資料生命週期與Records Management:保留標籤、到期處置審查與刪除證據。