同步MySQL视图备份恢复验收证据与整改进度

This commit is contained in:
xuans 2026-09-28 00:44:58 +08:00
parent 777c7169b6
commit 6cab85d532
7 changed files with 73 additions and 9 deletions

View File

@ -2,7 +2,7 @@
> 2026-09-27 任务规格:完整 44 项及六阶段验收规范见《整改任务规格与验收约定》和《Scert整改任务执行清单》。以下历史勾选不替代当前整改状态,不把旧测试结果当成新增需求已经实现。
> 2026-09-27 当前进度:原始整改清单、执行清单和分级规格同步标记状态。P0-05 `[~]`:在自有触发器、例程基础上增加事件备份、可见权限、恢复调度安全、编码及到期保护,Windows 5.7.44 / 8.0.45 最终全专项分别通过 139 / 155 个叶子用例;证据见《构建版本与数据库支持矩阵》第十三节。下一步推进视图;完整表清单、其他编码/SQL 模式、其余数据库与生产门禁仍未完成,不以本轮局部通过作生产放行。
> 当前进度(源码 `777c716`):原始整改清单、执行清单和分级规格同步标记状态。P0-05 `[~]`:已增加视图备份恢复、依赖排序、完整清单与视图定义权限检查,Windows 5.7.44 / 8.0.45 最终全专项分别通过 176 / 202 个叶子用例;证据见《构建版本与数据库支持矩阵》第十四节。下一步推进 SQLite 并发与锁验证;MySQL 其他编码/SQL 模式、独立发行验证、其余数据库/平台与生产门禁仍未完成,不以本轮局部通过作生产放行。
> 2026-09-27 范围调整:本文件保留早期开发历史,当前执行以《Scert整改合并优化清单》和《Scert整改任务执行清单》为准。正式交付仅为 Web 和 Windows/Linux 服务端;本文件中的 Wails 桌面窗口、托盘、桌面更新、桌面配置和桌面 UI 测试均退出正式开发及验收范围,不再作为未完成交付项。CLI 限定为初始化及服务运维,不另建业务管理界面。

View File

@ -39,7 +39,7 @@
| P0-02 | [x] | 建立完整任务清单 | 44 项逐项规格、原始编号名称、字段、六阶段、引用和汇总状态核对通过 | 等待最终复审,随实现同步状态和证据 | 四份规格、统一验收约定及 `fab98d1` 独立克隆 |
| P0-03 | [x] | 整理源码、构建产物和部署产物 | 全仓库及子目录规则、目录说明、正式回归和独立克隆构建校验通过 | 等待最终复审,后续提交继续执行边界检查 | 正式 Go 回归、完整索引、双平台 33 项清单及解包校验 |
| P0-04 | [~] | 统一开发和构建版本 | 精确工具链、安装策略、发布前后校验、系统清单及固定换行已实现,双独立克隆和完整自动化通过 | Linux 原生构建与双平台实际运行环境记录,不以交叉编译替代 | `94237b8`、175 项前端测试、后端完整回归、4 个 Web 文件一致、33 项清单和解包校验 |
| P0-05 | [~] | 确认数据库正式支持矩阵 | 已增加自有触发器、例程和事件导出、可见权限、恢复调度安全及编码和到期保护;视图和完整表清单仍缺 | 推进视图、完整清单、其他编码及 SQL 模式和独立发行验证;Linux、PostgreSQL、SQLite 与正式服务门禁仍缺 | `3625e8b` 双版本完整回归分别 139、155 个叶子用例,0 失败、0 跳过;详见支持矩阵第十三节 |
| P0-05 | [~] | 确认数据库正式支持矩阵 | 自有表、触发器、例程、事件和视图导出已有本批证据;新增完整清单权限和官方视图依赖恢复保护 | 下一步验证 SQLite 并发与锁;MySQL 其他编码/SQL 模式、独立发行命令、Linux、PostgreSQL 和正式服务门禁继续保留 | `777c716` 双版本完整专项分别 176、202 个叶子用例通过,0 失败、0 跳过;详见支持矩阵第十四节 |
| P0-06 | [~] | 建立统一领域模型 | 已有域名、证书、任务、服务器等实体,项目和部署关联仍需审查 | 补齐资源关系图、外键/归属和任务关联 | 模型文档、迁移检查、接口测试 |
| P0-07 | [~] | 增加项目级权限和资源隔离 | 用户组和角色已有实现,项目级资源边界未闭环 | 为证书、DNS、服务器、任务和审计补齐项目归属及越权测试 | 权限矩阵、接口越权测试 |
| P0-08 | [~] | 完善凭据和主密钥生命周期 | 已有凭据存储与测试,轮换、恢复、删除和失效证据不完整 | 补齐创建、轮换、恢复、删除、脱敏和不可恢复边界 | 安全测试、日志审查、恢复演练 |
@ -374,3 +374,16 @@ P0-05 从 `[!]` 调整为 `[~]`,并未标记完成;P0-04 剩余门禁和全
- `[x]` 支持矩阵第十三节及关联任务文档同步进度;Windows 隔离证据不替代 Linux 实库或生产放行,全部 44 项范围不变。
- `[~]` 下一子任务:视图自有备份与恢复,先复现现状并核对依赖、定义者、字符集、权限与官方工具互操作。
- `[ ]` 完整表清单、其他编码/SQL 模式、跨库和跨服务器定义者、独立发行 CLI、Linux 实库及其余三库/业务/生产门禁继续保留。
### P0-05 视图、完整清单与提交复核(源码 `777c716`)
- `[x]` 原始视图定义、创建字符集及排序规则导出;仅对本库视图依赖排序,反向删除、正向创建,不创建占位表或删除同名基础表。
- `[x]` 先证明库级或全局 SELECT,防止把权限过滤后的表/视图清单当成完整备份;逐视图检查有效 SHOW VIEW,覆盖角色、部分撤销及授权遮蔽。
- `[x]` 原始官方嵌套 CHECK OPTION 夹具在官方客户端复现 1368;Scert 对连续且闭合的最终视图块按依赖排序,原文件 SHA256 不变,并独立验证成功恢复。
- `[x]` 补充复杂查询、宽视图、失效视图、目标同名基础表、无效计划及会话上下文保护;不跨业务语句重排,不承诺任意 SQL 或全局 DDL 原子回滚。
- `[x]` 修正视图、事件、触发器测试的 SELECT 前提;例程测试分开验证定义可见与完整清单可读,仍检查拒绝时原备份不变,并验证补足读取权限后成功导出。
- `[x]` 原 15 个待提交文件均为正式实现或测试,另修正 3 个旧测试;分为 `d95ecfa`、`777c716` 提交并推送。没有删除文件,没有提交产物、密钥或数据库。
- `[x]` 5.7 / 8.0 完整专项分别 176 / 202 个叶子用例通过,常规后端、vet、模块校验和 Linux 测试包交叉编译通过;证据、失败历史与收尾结果见支持矩阵第十四节。
- `[x]` 本批同步原始清单、开发清单、审查记录、分级规格、支持矩阵及运维说明;上述事件段的剩余项为当时记录,当前视图和完整清单进展以本节为准。
- `[~]` 下一子任务:SQLite 文件库的多连接/多实例并发、写锁等待与取消、事务回滚及重连后的会话配置;先核对现有实现,再复现实际缺口。
- `[ ]` MySQL 其他编码/SQL 模式、跨服务器定义者、并发 DDL/授权变化、独立发行 CLI、Linux 实库、PostgreSQL 当前复测和生产门禁。全部 44 项及 P0-05 总状态不变。

View File

@ -8,7 +8,7 @@
> 进度同步:2026 年 9 月 27 日。任务状态与《Scert整改任务执行清单.md》及四份分级任务规格保持一致;本文件的需求和验收标准不因状态更新而缩减。详细变更、验证命令、证据和剩余缺口见执行清单与对应专项记录,`[~]` 仅表示已有实现或正在整改,不表示整项完成。
> 当前专项:P0-05 自有事件备份、事件可见权限、恢复调度安全、编码及到期保护已完成本批 Windows 双版本隔离回归,分别通过 139、155 个叶子用例;详见支持矩阵第十三节。下一步推进视图;完整表清单、其他编码/SQL 模式、其余数据库/平台及生产门禁仍待完成,P0-05 保持 `[~]`,全部 44 项范围不变。
> 当前专项:P0-05 已补齐本批视图备份恢复、依赖排序、完整表/视图清单读取权限及 SHOW VIEW 检查;源码 `777c716` 的 Windows 双版本隔离全专项分别通过 176、202 个叶子用例,详见支持矩阵第十四节。下一步推进 SQLite 并发与锁验证;MySQL 其余编码/SQL 模式、独立发行验证、其余数据库/平台及生产门禁仍待完成,P0-05 保持 `[~]`,全部 44 项范围不变。
---

View File

@ -2,7 +2,7 @@
> 2026-09-27 证据索引:当前 44 项整改的逐项范围、命令、实机步骤和复审字段见《整改任务规格与验收约定》及四份分级规格;实际进展以《Scert整改任务执行清单》为准。本文历史结果须按当时源码与环境解释。
> 2026-09-27 本批进度:P0-05 `[~]`。增加自有事件导出、EVENT 可见权限、PROCESS 工作线程检查、恢复调度安全、Latin-1 编码及到期保护,修正旧测试授权前提及事件多语句执行的时序问题。最终全专项通过 5.7 的 139 个、8.0 的 155 个叶子用例,0 失败、0 跳过;源码为 `3625e8b`,证据见《构建版本与数据库支持矩阵》第十三节。后端无缓存全量测试、vet、模块校验通过;Linux 交叉编译不是 Linux 实库证据。下一步推进视图,前端及生产部署未在本批验收。
> 本批进度(源码 `777c716`):P0-05 `[~]`。增加视图原定义导出、依赖排序、完整清单与 SHOW VIEW 权限检查,以及官方最终视图块的受限重排和执行上下文保护。Windows 5.7 / 8.0 全专项分别通过 176 / 202 个叶子用例,0 失败、0 跳过;详见《构建版本与数据库支持矩阵》第十四节。后端无缓存全量测试通过,1438 条通过记录、43 项条件跳过;vet、模块校验与 Linux 测试包交叉编译通过。已修正新 SELECT 门禁暴露的旧测试前提,保留权限反例及原备份保护断言。下一步推进 SQLite 并发与锁验证;前端、Linux 实库及生产部署未在本批验收。
> 2026-09-27 范围调整:以下为历史审查证据。当前正式测试范围仅为 Web 和 Windows/Linux 服务端;历史桌面模块测试记录保留,但不再作为交付目标或生产门禁。当前任务状态见《Scert整改任务执行清单》。

View File

@ -63,14 +63,14 @@
- 任务编号:P0-05;任务名称:确认数据库正式支持矩阵;优先级:P0。
- 当前状态:`[~] 进行中`。
- 六阶段:需求确认 `[x]`;代码实现 `[~]`;自动化测试 `[~]`;隔离环境测试 `[~]`;生产部署测试 `[!]`;最终验收 `[ ]`。
- 问题说明:已修复迁移、连接恢复、备份会话、精确数值、跨表快照、失败文件保护、生成列和不可见列导出;支持本批官方存储对象 SQL 的分隔符恢复,并新增自有触发器、例程及事件导出、可见权限、恢复调度安全、编码和到期保护。视图、完整表清单、其他编码与 SQL 模式及独立发行验证仍不足。
- 问题说明:已修复迁移、连接恢复、备份会话、精确数值、跨表快照、失败文件保护、生成列和不可见列导出;新增自有触发器、例程、事件和视图导出、完整清单与定义可见权限、恢复调度安全、视图依赖排序及执行上下文保护。其他编码与 SQL 模式、独立发行验证、SQLite 并发锁及剩余三库/双平台证据仍不足。
- 涉及文件:`backend/internal/database/`、其 `migrations/mysql/`、`migrations/postgres/`、`migrations/sqlite/`、`backend/internal/cli/`、《构建版本与数据库支持矩阵.md》。
- 依赖任务:P0-04。
- 整改内容:明确 SQLite、MySQL、PostgreSQL 支持版本;验证 MySQL 5.7/8.0、PostgreSQL 目标版本、SQLite 锁并发;逐库检查类型、索引、默认值、事务及初始化、升级、回滚、备份恢复。不能悄然去掉难测版本。
- 验证命令:V06、V02;真实数据库测试按正式集成测试的参数运行并保存非跳过结果,不在命令行嵌入密码。
- 实机验收步骤:逐版本创建专用测试库;从空库初始化及历史版本迁移,注入失败检查事务;使用官方备份工具恢复并核对行数、资源关联和加密凭据;验证 TLS 和断线重连;只清理明确测试库。
- 验收证据:在既有迁移、连接恢复、特殊列互操作及触发器、例程备份基础上,增加事件导出、权限检查、调度安全、编码与到期测试。最终源码 `3625e8b` 在 Windows MySQL 5.7.44、8.0.45 分别通过 139、155 个叶子用例,0 失败、0 跳过;对应含父项记录为 159、175。已实际执行触发器、过程、函数和恢复后的隔离事件;详见支持矩阵第十三节的最终证据及执行清单。
- 复审结果:上述 Windows 隔离范围通过,不等于生产放行。只验证 InnoDB 数据快照,不承诺并发 DDL 一致性;非事务表和视图拒绝属于临时边界。官方导出文件恢复通过不证明自有导出保存了全部对象;其他 SQL 模式、定义者迁移、独立发行命令、Linux 实库、PostgreSQL 当前复测、SQLite 并发锁及正式服务验收仍未完成。
- 验收证据:源码 `777c716` 在 Windows MySQL 5.7.44、8.0.45 完整专项分别通过 176、202 个叶子用例,0 失败、0 跳过;含父项记录为 201、227。新增视图与完整清单权限、复杂依赖、原始官方文件恢复及失败保护;详见支持矩阵第十四节,之前批次的例程、事件等证据保留追溯。
- 复审结果:上述 Windows 隔离范围通过,不等于生产放行。基础表仍只接受 InnoDB,不承诺并发 DDL 一致性;视图已在本批列明场景中验证,不再一概拒绝。官方文件仅对严格识别的连续最终视图块调整顺序;其他编码/SQL 模式、定义者迁移、独立发行命令、Linux 实库、PostgreSQL 当前复测、SQLite 并发锁及正式服务验收仍未完成。
### P0-05 触发器自有备份子任务进度
@ -99,6 +99,15 @@
- `[~]` 视图自有备份与恢复;上方触发器、例程子任务的剩余项为当时记录,事件本批进展以此节为准。
- `[ ]` 完整表清单权限、其他 SQL 模式、跨库及跨服务器定义者、独立发行验证、其余数据库/平台与生产门禁;P0-05 总状态不提升。
### P0-05 视图与完整清单子任务进度
- `[x]` 完整库 SELECT 与逐视图 SHOW VIEW 检查;隐藏对象、角色、部分撤销、授权遮蔽失败时保留原备份。
- `[x]` 原始定义、创建编码、定义者和检查选项保留;依赖解析与拓扑排序,不以占位表规避视图依赖。
- `[x]` 原始官方文件的连续最终视图块受限排序;计划预检、会话上下文检查及原文件哈希不变验证。
- `[x]` 复杂/宽/失效视图、三条互操作路径和失败保护的 Windows 双版本实库证据,详见支持矩阵第十四节。
- `[~]` 下一步验证 SQLite 并发与锁;上方触发器、例程和事件段中的缺口是各批历史状态,当前进展以本节为准。
- `[ ]` MySQL 其他编码/SQL 模式、并发 DDL/授权变化、独立发行验证、剩余三库/双平台及生产门禁;P0-05 保持 `[~]`。
## P0-06 建立统一领域模型
- 任务编号:P0-06;任务名称:建立统一领域模型;优先级:P0。

View File

@ -56,8 +56,8 @@ npm.cmd run build
| 数据库 | 预期定位 | 代码现状 | 本轮验证 | 尚未满足的正式验收 |
|---|---|---|---|---|
| SQLite | 单机、开发、轻量部署 | 驱动、初始化、迁移 1~9、CLI 备份恢复 | 临时独立库从版本 0~9 升级、重复迁移、非法历史和新版数据库拒绝 | 并发读写/锁、服务重启、完整业务数据升级恢复 |
| MySQL 5.7.44 | 历史兼容目标,仍保留实现 | 独立方言、迁移、连接恢复、InnoDB 快照、特殊列、官方存储对象恢复及自有触发器和例程备份 | 当前候选 110 个叶子用例通过,含例程注释编码、元数据拒绝及可见权限;详见第十二节 | 事件、视图、完整表清单、更多编码与 SQL 模式、独立发行命令、Linux 实库、Web 初始化及生产系统验证 |
| MySQL 8.0.45 | 正式生产支持目标 | 同上,额外处理不可见列实际数据、启用角色与部分撤销 | 同候选独立实库 121 个叶子用例通过,未复用 5.7 的结果;详见第十二节 | 同上;不代表 8.0 全部补丁版本已经验证 |
| MySQL 5.7.44 | 历史兼容目标,仍保留实现 | 独立方言、迁移、连接恢复、InnoDB 快照、特殊列、自有触发器/例程/事件/视图、完整清单权限及受限官方恢复 | `777c716` 完整专项 176 个叶子用例通过,详见第十四节 | 更多编码与 SQL 模式、并发 DDL/授权变化、定义者迁移、独立发行命令、Linux 实库、Web 初始化及生产系统验证 |
| MySQL 8.0.45 | 正式生产支持目标 | 同上,额外处理不可见列实际数据、启用角色与部分撤销 | 同候选独立实库 202 个叶子用例通过,未复用 5.7 的结果;详见第十四节 | 同上;不代表 8.0 全部补丁版本已经验证 |
| PostgreSQL | 正式生产支持目标,实际服务端版本待本轮复核 | 独立方言、迁移 1~9、严格 TLS 和官方备份恢复工具接入 | 文件/嵌入/登记一致性、凭据/TLS 单元测试 | 当前版本真实集群、初始化、升级、失败回滚、备份恢复和业务回归 |
正式支持目标不等于已经生产放行。旧文档中的 PostgreSQL 实机记录仅作为线索,不替代当前候选版本复测。本批 MySQL 测试自行初始化 loopback 独立实例,不连接本机已有服务或生产数据库;PostgreSQL 当前候选实库测试未执行。
@ -473,3 +473,41 @@ go test -json -p 1 -count=1 -timeout=8m -run '^TestMySQLReal' ./internal/databas
- `[~]` 推进视图自有备份与恢复,核对依赖顺序、原定义者、权限、字符集和官方工具互操作;当前版本仍拒绝视图,不能记作已支持。
- `[ ]` 完整表清单权限、其他字符集/SQL 模式、跨库及跨服务器定义者、并发 DDL/授权变化和失败回滚完整语义。
- `[ ]` 独立发行 CLI、Linux 实库、PostgreSQL、SQLite 并发锁、正式 Web 业务和 Windows/Linux 生产门禁。事件局部通过不提升 P0-05 总状态,不作生产放行。
## 十四、MySQL 视图与完整对象清单
本节接续第十三节的历史缺口。修改前检查点 `a8f4a54`;官方客户端错误码支持为 `d95ecfa`,本批实现及正式测试为 `777c716`,均已推送。全部 44 项范围不变,P0-05 保持 `[~]`;不将 Windows 隔离证据当作生产放行。
### 实现与边界
1. 读取表/视图清单前要求可证明的有效库级或全局 SELECT,不能把权限过滤后的对象列表当成完整备份;逐视图检查 SHOW VIEW。保留角色、部分撤销、精确与通配授权遮蔽的保守拒绝。
2. 在固定会话模式下读取原始 SHOW CREATE VIEW,仅解析依赖而不重写定义;保留定义者、客户端编码、排序规则和检查选项。源会话设置在结束时恢复,失效视图拒绝导出。
3. 本库视图按依赖排序,反向 DROP VIEW、正向 CREATE;不创建占位表,不 DROP 同名基础表。基础表仍仅支持 InnoDB;导出顺序为基础数据、例程、视图、触发器、外键检查恢复、事件。
4. 覆盖普通/括号连接、子查询、函数内 FROM、CTE 及作用域、跨库引用排除、中文与反引号名称、1020 列宽视图;跨库测试只证明同实例既有依赖可引用,不代表跨服务器迁移已验证。
5. 原始官方嵌套 CHECK OPTION 夹具在两版官方客户端均复现 1368。Scert 严格识别含 11 条语句的连续、闭合最终视图块,整块按依赖排序,不改变块内 SQL 或原文件,不跨业务语句、USE、未知 SET 等边界。
6. 编码往返、重复名称、循环及 DROP/CREATE 名称不一致在执行输入文件前拒绝;对应重排块执行前再次核对实际数据库、SQL 模式及 UTF-8 客户端编码。此保护不承诺整个恢复脚本的事务回滚或任意 SQL 模式兼容。
7. 官方工具错误码只在内存提取,不输出原始 stderr。测试修正仅补充进入目标权限检查的前提,不自动给产品扩权;例程定义可见与整库清单可读分开验证,缺 SELECT 时即使有 SHOW_ROUTINE 仍拒绝完整备份。
### 验证与证据
证据目录:`artifacts/mysql-native-views-20260928/`。目录名沿用本机测试时间;JSONL 为 PowerShell UTF-16,读取使用 `Get-Content -Encoding Unicode`。正式测试代码已提交,日志、数据库、随机密钥和编译产物不提交。
| 范围 | 证据 | 结果 |
|---|---|---|
| Windows MySQL 5.7.44 完整专项 | `mysql57-commit-final.jsonl` | 176 个叶子用例、含父项 201 条通过,0 失败、0 跳过 |
| Windows MySQL 8.0.45 完整专项 | `mysql80-commit-final.jsonl` | 202 个叶子用例、含父项 227 条通过,0 失败、0 跳过 |
| 常规后端全量 | `backend-submit-final.jsonl` | 1327 个叶子用例、含父项 1438 条通过,0 失败;43 项条件跳过不能充当实库通过 |
| 静态与依赖 | `go vet ./...`、`go mod verify` | 退出码 0,模块校验通过 |
| Linux CLI 测试包 | `GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go test -c ./internal/cli` | 交叉编译通过,未在 Linux 执行 |
两版完整专项命令为 `go test -json -p 1 -count=1 -timeout=8m -run '^TestMySQLReal' ./internal/database ./internal/cli`,分别设置 `SCERT_MYSQL_TEST_BIN` 为 `E:\DB\5.7\bin`、`E:\DB\8.0\bin`,并设置上述隔离根目录。5.7 完整专项之后仅调整了 8.0 部分撤销场景,随后用当前源码再次通过 5.7 的 `TestMySQLRealRoutineVisibility`;8.0 最终完整专项包含该调整。
`mysql57-commit-review.jsonl`、`mysql80-commit-review.jsonl` 记录视图夹具的 SELECT 前提缺失;`mysql57-commit-full.jsonl` 记录旧事件/触发器夹具前提问题;`mysql80-commit-full.jsonl` 记录旧例程测试未区分两种权限的问题。它们不是最终通过证据,均保留追溯。`mysql80-routine-commit-review.jsonl` 是修正后的例程定向通过记录,不能单独替代完整专项。
收尾核验当时:本目录 126 份初始化口令文件均为空,最终两版记录的 60 个端口无监听,本批隔离 mysqld 进程为 0;三个原有共享 MySQL 进程未动。未操作远端服务、生产数据库或真实 DNS。
### 任务状态与下一步
- `[x]` 本批视图导出/恢复、完整清单可见权限、官方互操作和失败保护实现及 Windows 隔离回归完成,等待完整范围复审。
- `[~]` 下一步推进原定 SQLite 并发与锁要求,核对多连接/多实例、写锁等待和取消、事务回滚及会话配置恢复。
- `[ ]` MySQL 其他编码/SQL 模式、跨服务器定义者、并发 DDL/授权变化、独立发行 CLI、Linux 实库、PostgreSQL 当前复测、三库完整业务与双平台生产门禁。

View File

@ -271,6 +271,10 @@ SQLite 使用 `VACUUM INTO` 创建一致性快照并执行 `PRAGMA quick_check`
MySQL 账号和密码从加密数据库凭据引用读取,只在维护连接期间存在于内存,不写回普通配置或备份清单。恢复前固定当前可用账号用于快照、导入和失败回滚;数据库服务端账号本身的密码轮换仍需单独管理,恢复旧配置不能自动恢复数据库账户密码。
MySQL 完整备份先检查有效库级或全局 `SELECT`,不能用零散表级权限或过滤后的空清单证明对象完整。视图还要求有效 `SHOW VIEW`;失效视图或定义不可见时拒绝备份并保留原文件。视图按本库依赖排序,保留定义者、创建字符集和检查选项,不创建占位基础表,也不删除与视图同名的已有基础表。基础数据和例程先于视图,随后创建触发器、恢复外键检查,最后恢复事件;仍需管理员保证维护窗口内没有外部 DDL 或授权变化。
本批嵌套 `CHECK OPTION` 夹具的原始官方导出文件在官方客户端出现 1368;Scert 仅对严格识别、连续且闭合的官方最终视图块按依赖重排,块内 SQL 和输入文件保持不变。不跨业务语句、`USE` 或未知设置排序;执行对应块前核对数据库、SQL 模式与客户端编码。此能力不是任意 SQL 兼容承诺,也不是恢复失败后已执行 DDL 的原子回滚保证。账户、跨库依赖及定义者授权仍需管理员准备。验证范围、证据和限制见《构建版本与数据库支持矩阵》第十四节。
MySQL 自有备份已增加触发器导出。维护账户除读取表结构/数据外,还需对每张可见基础表具有可证明的有效 `TRIGGER` 权限;没有权限时,数据库可能隐藏触发器,Scert 会明确拒绝而不是报告不完整备份成功。即使业务当前没有触发器,也不能据此省略该可见权限。产品不会自动扩权;精确库级或表级授权由管理员审核配置,复杂且存在遮蔽的通配授权可能被保守拒绝。
MySQL 自有备份同时导出存储过程和函数。5.7 维护账户需对 `mysql.proc` 具有完整 `SELECT` 权限;8.0 需具有有效 `SHOW_ROUTINE`,或没有被当前库部分撤销限制的全局 `SELECT`。仅有库级 `EXECUTE`、`CREATE ROUTINE` 或元数据中看不到例程,不能证明完整定义可见;即使源库当前没有例程,检查仍会执行。8.0 支持通过已启用角色获得权限,不会自动启用角色或扩权。请优先由管理员评估专用维护账户及最小可见权限,不给业务账户照搬测试授权。