Expand description
SQL 规则引擎:可组合的规则集合、规则匹配与违规报告
本模块提供基于规则的 SQL 质量检查框架,支持:
- 规则定义(
SqlRuletrait):自定义检查逻辑,返回违规报告 - 内置规则:禁止
SELECT *、DELETE/UPDATE 必须带 WHERE、表数量上限、 JOIN 数量上限、禁止 UNION、禁止关键字、正则匹配规则 - 规则引擎(
RuleEngine):组合多条规则,批量检查 SQL,生成汇总报告 - 违规报告(
RuleReport/RuleViolation):按严重级别分类, 支持位置定位与人类可读摘要
§示例
use sz_orm_sql_validator::sql_rules::{RuleEngine, NoSelectStarRule, RequireWhereInDeleteRule};
let mut engine = RuleEngine::new();
engine.add_rule(Box::new(NoSelectStarRule));
engine.add_rule(Box::new(RequireWhereInDeleteRule));
let report = engine.check("DELETE FROM users");
assert!(report.has_violations());Structs§
- Forbidden
Keyword Rule - 禁止关键字规则
- MaxColumn
Count Rule - 限制 SELECT 列数上限(防止超宽结果集)
- MaxJoin
Count Rule - JOIN 数量上限规则
- MaxTable
Count Rule - 表数量上限规则
- NoSelect
Star Rule - 禁止
SELECT *规则 - NoSubquery
Rule - 禁止在 SELECT 中使用子查询(SELECT … FROM (SELECT …))
- NoUnion
Rule - 禁止 UNION 规则
- Regex
Rule - 正则匹配规则
- Require
Limit Rule - 限制结果集行数规则
- Require
Where InDelete Rule - DELETE 必须包含 WHERE 子句规则
- Require
Where InUpdate Rule - UPDATE 必须包含 WHERE 子句规则
- Rule
Context - 规则匹配上下文,封装 SQL 文本及其预计算信息
- Rule
Engine - 规则引擎,管理规则集合并批量执行检查
- Rule
Presets - 规则集预设,提供常见场景的规则组合
- Rule
Report - 规则检查汇总报告
- Rule
Violation - 单条规则违规报告
Enums§
- Rule
Severity - 规则违规的严重级别
Traits§
- SqlRule
- SQL 规则接口