进阶专题

NL2SQL 是什么:
什么时候不能让 AI 直接查库

把自然语言转换成 SQL,但在只读副本、权限、限量和人工确认之后才允许执行。

预计阅读 15 分钟公开免费核验于 2026.08.19
内容目录 当前:第 27
开始前准备6
Agent 基础5
工具安装与配置6
模型与接口5
进阶专题5
本文目录 4 个部分

大家好,我是云途。NL2SQL 是把“上个月哪个产品退款最多”这样的自然语言问题转换成数据库查询语句。

生成 SQL 不代表可以直接执行。模型可能选错表、理解错字段,也可能生成代价很高甚至会修改数据的语句。

安全链路中间必须有闸门

SQL 生成后先经过权限与人工检查,只在受控副本中限量执行,并保留审计。自然语言生成 SQL权限检查只读 / 范围人工确认高风险查询测试执行副本 / 限量结果与审计可追溯
SQL 生成后先经过权限与人工检查,只在受控副本中限量执行,并保留审计。

比较合适的使用场景

  1. 分析人员对只读数据副本做探索。
  2. 查询范围、表和字段已经建立白名单。
  3. 结果有行数、时间和成本限制。
  4. 最终业务判断仍由懂数据的人确认。

这些情况不能直接执行

  1. 生产数据库或包含真实客户权益的数据。
  2. 允许 INSERT、UPDATE、DELETE、DROP 等写操作。
  3. 没有租户隔离、字段权限或隐私脱敏。
  4. 模型看不到准确 schema 和字段含义。
  5. 查询可能扫描整库,却没有超时和行数限制。
先展示 SQL、解释会读取哪些表和字段,等人工确认后才在只读副本执行。

用已知答案的问题测试

准备一组结果已知的问题,比较生成 SQL、数据库实际结果和人工标准答案。测试要包含同义表达、时间范围、空结果和无权限字段。

最小安全约束示意TEXT
只允许 SELECT
只连接只读副本
限定允许的 schema / table / column
默认 LIMIT 100
设置查询超时
保存问题、SQL、批准人和结果摘要
具体实现取决于数据库与应用,约束原则不应省略。
完成检查

自然语言只是入口,数据库边界仍由系统负责

  • 只连接只读数据副本。
  • SQL 执行前可见并可确认。
  • 表、字段、行数和时间都有边界。
  • 问题、SQL 和结果可以审计。

官方依据与延伸阅读

PostgreSQL Row SecurityOWASP:LLM Excessive Agency