# 测试报告 ## 性能测试 | 测试项 | 性能指标 (v1.1.6) | 备注 | | :--- | :--- | :--- | | **BenchmarkTableSet** | ~760,000 ns/op | 包含 Schema 验证、身份注入、1-RTT 写入及自动 ID 生成 | | **鉴权开销 (RTT)** | 1-RTT | 核心鉴权逻辑已合并至主查询/写入 SQL,无额外网络往返 | | **内存展平查询** | $O(1)$ | 字段有效性验证与策略检索均通过内存缓存实现,无递归开销 | ## 覆盖场景 1. **零开销 ABAC 鉴权引擎** - 验证了在开启 `enableRLS` 时,系统自动注入 `creator = ? OR (conditions)`。 - 验证了 `checkAuth` 在单条操作(Get/Remove)时的 1-RTT 性能闭环。 2. **多级权限继承与环状检测** - 测试通过了 `Manager -> Clerk` 的权限继承,Manager 自动获得 Clerk 的所有表级访问权。 - 验证了循环继承(A -> B -> A)场景下系统依然能保持稳定运行,不发生内存溢出或死锁。 3. **自主授权体系** - 验证了普通用户(非 `_system`)只有在对目标表拥有 `full` 权限时,才能通过 `SetPolicy` 为第三方授权。 - 验证了 `inherit` 类型的策略被严格限制在 `SystemUserID` 权限下操作。 4. **结构化数据操作与隔离** - 测试通过了包含和排除 system userID 时的增删改查。 - `Auth` 方法通过携带不同 userID 后实现了 `creator` 的数据隔离限制。 5. **生命周期 Hook 触发机制** - `OnUpdatingRow` 触发并允许修改将要入库的行数据。 - `OnUpdatedRows` 在更新结束后被触发。 - `OnRemovedRows` 在成功移除后被触发返回对应的 ID 集合。 6. **SQL注入黑盒测试** - Table 名称注入被验证并阻止。 - Field 查询字段注入被验证并阻止。 - Join On 条件验证被拦截。 - OrderBy 查询的语句结构注入被拦截。