sql-query-generator

🗄️ 企业级安全 SQL 查询生成器

内置 SQL 注入防护的自然语言转 SQL 工具,强制参数化查询与审计,支持 6 大主流数据库,确保 AI 生成 SQL 安全合规。

收藏
4.1k
安装
1.7k
版本
v0.3.0
CLS 安全性认证2026-05-11
点击查看完整报告 >

使用说明

核心用法

SQL Query Generator Skill 是一款专为 AI Agent 设计的自然语言转 SQL 工具,支持将人类语言描述精准转换为符合最佳实践的标准 SQL 查询。该技能覆盖 PostgreSQL、MySQL、SQLite、SQL Server、Oracle、MariaDB 六大主流数据库系统,完整支持 SELECT、JOIN(内/外/交叉连接)、聚合分析(GROUP BY/HAVING)、子查询、CTE(公用表表达式)、窗口函数(ROW_NUMBER/RANK 等)及数据操纵语句(INSERT/UPDATE/DELETE)。使用者可通过直接引用模块、集成至 Python 项目或作为 AI Agent 技能三种方式调用,核心功能仅依赖 Python 3.7+ 标准库,零外部依赖即可运行。

显著优点

该技能最突出的优势在于其企业级安全防护体系。代码内置 18+ 种 SQL 注入攻击模式检测(涵盖 UNION、DROP、XP_CMDSHELL 等),并强制要求使用参数化查询(支持 $1?@param 等多种方言占位符),从架构层面根除了字符串拼接导致的注入风险。配套的 SQLInputValidator 类提供完整的输入验证框架,包括标识符白名单(防止关键字冲突)、类型校验、长度限制、正则格式验证(邮箱、日期)及空字节检测。此外,技能集成审计日志记录、查询速率限制(防洪泛攻击)、敏感数据自动脱敏(信用卡号、SSN、密码)及错误信息脱敏功能,满足生产环境的安全合规要求。

潜在缺点与局限性

尽管代码质量优秀,但来源为 T3 级个人开发者账号(cerbug45),缺乏企业或开源组织的背书,这在极高合规要求的金融、医疗行业中可能成为采纳障碍。功能层面,该技能仅负责 SQL 生成而非直接执行,实际查询仍需开发者自行处理数据库连接与结果解析;对于复杂的多层嵌套查询或特定数据库的方言优化,生成结果可能仍需人工微调。此外,虽然核心功能零依赖,但连接实际数据库时需手动安装对应驱动(如 psycopg2、mysql-connector-python),增加了部署步骤。

适合的目标群体

本技能特别适合以下场景:AI Agent 开发者(需要为 LLM 配备安全的数据库查询能力)、后端工程师(构建 REST/GraphQL API 时快速生成安全 SQL)、数据分析师(通过自然语言快速提取数据,无需记忆复杂语法)以及教育机构(用于 SQL 注入防护教学与安全编码实践)。对于重视数据安全、需要防范 SQL 注入但又希望利用 AI 提升开发效率的技术团队,这是理想的选择。

使用风险与注意事项

尽管通过 BSS A 级认证,但在生产环境使用时仍需注意:1)充分测试:生成的 SQL 应在测试环境验证逻辑正确性与性能(建议使用 EXPLAIN 分析执行计划);2)配置审计:务必启用 enable_audit_log 并配置安全的日志存储路径,避免日志文件泄露;3)高合规场景:金融、医疗等涉及敏感数据的行业,建议在使用前进行额外的第三方安全审计;4)权限控制:虽然技能本身安全,但调用者需确保数据库连接账号遵循最小权限原则,避免赋予不必要的 DDL 权限。

安全解读

核心用法

SQL Query Generator 是一款专为AI代理设计的SQL查询生成技能,可将自然语言描述转换为准确、优化的SQL查询。该技能支持PostgreSQL、MySQL、SQLite、SQL Server、Oracle、MariaDB等主流数据库系统,涵盖SELECT、JOIN、聚合、子查询、CTE、窗口函数、DML及DDL等完整查询类型。

使用时,AI代理需遵循标准流程:解析自然语言输入→识别所需表与关联条件→生成基础查询→强制应用安全措施。技能内置SecureQueryBuilder类,提供参数化查询构建、SQLInputValidator输入验证框架,以及针对各数据库方言的参数占位符规范(PostgreSQL用$1,MySQL/SQLite用?,SQL Server用@param1)。

显著优点

安全架构领先:实现8层纵深防御,包括SQL注入检测(正则模式匹配UNION/INSERT/DROP等攻击特征)、强制参数化查询、白名单输入验证、动态标识符转义、速率限制(RateLimiter)、审计日志(SecurityAuditLogger)、预处理语句池(PreparedStatementPool)及数据脱敏。安全认证评分88分,获S级评级,完全符合OWASP Top 10、CWE-89、GDPR、NIST及PCI DSS标准。

零依赖设计:核心功能仅依赖Python标准库(re/hashlib/logging/typing等),无requirements.txt强制安装项,彻底消除供应链攻击面。可选数据库驱动(psycopg2/mysql-connector等)仅在需要实际执行查询时按需安装。

功能完整性:提供超过15种查询模式模板,涵盖递归CTE、窗口函数、Pivot等高级场景;配套详细的实现示例(Python/Node.js/Flask/GraphQL)和性能优化建议(索引推荐、执行计划分析、N+1问题规避)。

潜在局限

执行层分离:技能本身仅生成查询字符串,不直接执行数据库操作,用户需自行处理连接池管理、事务控制和结果集映射。生成的查询需人工复核后才能在生产环境运行。

方言覆盖边界:虽支持6种数据库,但某些厂商特有扩展(如PostgreSQL的JSONB操作符、Oracle的PL/SQL块)可能需要手动调整。

审计日志配置:默认日志路径为相对路径sql_audit.log,生产环境需显式配置绝对路径及日志轮转策略,否则存在磁盘占满风险。

适合人群

  • 后端开发者 needing 快速原型SQL或安全查询模板
  • AI Agent 构建者 requiring 结构化数据访问能力
  • 数据分析师 seeking 自然语言到SQL的转换工具
  • 安全审计团队 evaluating 查询安全基线

常规风险

配置风险:若禁用SecurityLevel.STRICT模式或未启用审计日志,可能削弱防护效果。误用风险sql.Identifier用于动态表名时需确保来源可信,避免权限绕过。性能风险:生成的复杂CTE/窗口函数查询在大数据量下可能需额外优化,建议配合EXPLAIN ANALYZE验证。

sql-query-generator 内容

手动下载zip · 27.6 kB
examples.pytext/plain
请选择文件