Skip to main content

Module sql_rules

Module sql_rules 

Source
Expand description

SQL 规则引擎:可组合的规则集合、规则匹配与违规报告

本模块提供基于规则的 SQL 质量检查框架,支持:

  • 规则定义SqlRule trait):自定义检查逻辑,返回违规报告
  • 内置规则:禁止 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§

ForbiddenKeywordRule
禁止关键字规则
MaxColumnCountRule
限制 SELECT 列数上限(防止超宽结果集)
MaxJoinCountRule
JOIN 数量上限规则
MaxTableCountRule
表数量上限规则
NoSelectStarRule
禁止 SELECT * 规则
NoSubqueryRule
禁止在 SELECT 中使用子查询(SELECT … FROM (SELECT …))
NoUnionRule
禁止 UNION 规则
RegexRule
正则匹配规则
RequireLimitRule
限制结果集行数规则
RequireWhereInDeleteRule
DELETE 必须包含 WHERE 子句规则
RequireWhereInUpdateRule
UPDATE 必须包含 WHERE 子句规则
RuleContext
规则匹配上下文,封装 SQL 文本及其预计算信息
RuleEngine
规则引擎,管理规则集合并批量执行检查
RulePresets
规则集预设,提供常见场景的规则组合
RuleReport
规则检查汇总报告
RuleViolation
单条规则违规报告

Enums§

RuleSeverity
规则违规的严重级别

Traits§

SqlRule
SQL 规则接口