============================================================================== PBL-RTX-0005 实库取证(修复后 DDL 装载 + 守卫行为) 时间: 2026-09-22 14:59:45 +0800 git HEAD: 8249969 模块目录: /d/pipeline/workspaces/0/sdlc_general/modules/pbl_runtime_ext ============================================================================== [1] 连接参数来源: projects/pbls/env/test.json db 段(dbname=pbls user=pbls,凭据不打印) [2] mariadb-install-db rc=0 [3] mariadbd 就绪: 10.6.23-MariaDB-0ubuntu0.22.04.1 [4] 建库建号 rc=0 [5] full_script() 渲染 12346 bytes(修复后,无过程体 RETURN) [6] DDL 装载 rc=0 stdout: note | m11b-1 migrate: 人工执行,见注释 stderr: (空) <-- 修复前此处为 ERROR 1064 (42000) at line 65 [7] SHOW PROCEDURE STATUS(过程真实存在) [8] SHOW TRIGGERS(触发器真实存在) TRIGGER_NAME EVENT_MANIPULATION ACTION_TIMING EVENT_OBJECT_TABLE trg_pbl_runtime_event_append_only_del DELETE BEFORE pbl_runtime_event trg_pbl_runtime_event_append_only_upd UPDATE BEFORE pbl_runtime_event [9] 分区清单 PARTITION_NAME PARTITION_DESCRIPTION p202609 '2026-10-01' p202610 '2026-11-01' p202611 '2026-12-01' p202612 '2027-01-01' p202701 '2027-02-01' p202702 '2027-03-01' pmax MAXVALUE [10] CALL pbl_runtime_event_ensure_partitions(9)(修复前报 1305 does not exist) rc=0 stderr=(空) 调用后分区数=11 [11] append-only 守卫:非 break-glass 会话 CALL pbl_assert_append_only 必须被拒(45001) rc=1 stderr=-------------- CALL pbl_assert_append_only('pbl_runtime_event','update','probe-deny') -------------- ERROR 45001 (45000) at line 1: PBL_APPEND_ONLY_DENIED PASS: 拒绝生效(SQLSTATE 45000 / MYSQL_ERRNO 45001) [12] break-glass 放行:SET @pbl_guard_ctx='append_only_admin' 后同一 CALL 不报错 rc=0 stderr=(空) [13] 非守护表不受影响:CALL pbl_assert_append_only('other_table',...) 应放行 rc=0 stderr=(空) [14] 触发器层:INSERT 允许 / UPDATE 拒绝 / DELETE 拒绝(同会话内逐条验证) UPDATE 段 rc=1 stderr=-------------- UPDATE pbl_runtime_event SET event_type='x' WHERE tenant_id='t_rtx5' -------------- ERROR 45001 (45000) at line 3: PBL_APPEND_ONLY_DENIED DELETE 段 rc=1 stderr=-------------- DELETE FROM pbl_runtime_event WHERE tenant_id='t_rtx5' -------------- ERROR 45001 (45000) at line 1: PBL_APPEND_ONLY_DENIED PASS: INSERT 成功、UPDATE/DELETE 均被触发器拒绝 break-glass 清理探针 rc=0 stderr=(空) [15] 取证结论: PASS [16] 沙箱 datadir 已销毁: /tmp/rtx0005_evidence_db 存在=False [17] 本取证正文已同步落盘: tests/evidence/rtx0005_live_evidence.txt