schemagate
一个面向text-to-SQL场景的表筛选工具,先用BM25、embedding、表名匹配等数学方法粗筛候选表,再通过RRF融合排序,可选调用LLM对候选表重新排序
时间轴 (近 90 天)
schemagate在200题的试点测试中F1为0.83,33个错误拒绝中有32个源于一个正则表达式Bug:检查无法正确处理大写AS(如FROM students AS T1),导致将别名误读为表名并拒绝查询。
schemagate是一个位于LLM和数据库之间的中间层,只向模型展示用户被授权读取的表和列,并在任何生成的SQL执行前检查查询是否触碰了其他内容。
作者总结的教训是:自建测试集容易陷入‘你测的就是你想到的’盲区,外部基准测试的最大价值在于用未曾设想的边界条件来攻击系统。
用独立SQL解析器解析每一个被回答的查询,并将每张表和每一列与角色的GRANT进行比对,未发现任何越界访问。
论文中的系统使用的是2024-25年的模型,而本次测试用的是2026年的模型(Claude Sonnet 5.5),部分性能差距来自模型本身的能力提升。
在试点从未触碰的600条记录上,schemagate的拒绝F1为0.986。
在Spider-ACL完整测试中,schemagate回答了1.8%的禁止问题,但读取未授权数据的记录为0/8,128。
修复Bug后,schemagate使用Claude Sonnet 5.5跑完Spider-ACL全部19,624条记录,拒绝F1达到0.984。
在 BIRD 数据集上,schemagate 的 AC-F1 达到 90.1,而论文中 13 个模型的最佳成绩为 88.1(该模型能看到完整 schema 和策略)。
在 Spider 数据集上,schemagate 与同模型(Claude Sonnet 4.5)得分持平,均为 93.0;论文在 Spider 上的最佳成绩来自 DeepSeek V3.2-Reasoning,达到 95.9。
还有 30 条时间轴事件
全部知识事实 (20)
在Spider-ACL完整测试中,schemagate回答了1.8%的禁止问题,但读取未授权数据的记录为0/8,128。
50%待验证修复Bug后,schemagate使用Claude Sonnet 5.5跑完Spider-ACL全部19,624条记录,拒绝F1达到0.984。
50%待验证schemagate是一个位于LLM和数据库之间的中间层,只向模型展示用户被授权读取的表和列,并在任何生成的SQL执行前检查查询是否触碰了其他内容。
50%待验证作者总结的教训是:自建测试集容易陷入‘你测的就是你想到的’盲区,外部基准测试的最大价值在于用未曾设想的边界条件来攻击系统。
50%待验证论文中的系统使用的是2024-25年的模型,而本次测试用的是2026年的模型(Claude Sonnet 5.5),部分性能差距来自模型本身的能力提升。
50%待验证在试点从未触碰的600条记录上,schemagate的拒绝F1为0.986。
50%待验证schemagate 在两个数据集上实际读取禁止列的查询数均为 0。
50%待验证schemagate 在提示词中加入“你看到的是这个数据库的一部分,如果需要更多信息就拒绝作答”,在 100 道问题的试点中将错误答案从 16% 降到了 5%。
50%待验证在 BIRD 数据集上,schemagate 的 AC-F1 达到 90.1,而论文中 13 个模型的最佳成绩为 88.1(该模型能看到完整 schema 和策略)。
50%待验证schemagate 是一个为 SQL 代理执行 schema 过滤的检索器 / MCP 服务器。
50%待验证在 Spider 数据集上,schemagate 与同模型(Claude Sonnet 4.5)得分持平,均为 93.0;论文在 Spider 上的最佳成绩来自 DeepSeek V3.2-Reasoning,达到 95.9。
50%待验证将 schema 过滤实现为 MCP 服务器,意味着模型在生成 SQL 前通过该服务器检索可用的表与列元数据,服务器在检索阶段就完成权限裁剪,而不是把全量 schema 交给模型后再依赖其自觉遵守策略。
50%待验证schemagate 作者指出其局限:仅测试了一个模型,提示词措辞是在 100 道 BIRD 问题上选定的;去掉这两个因素后分数基本不变(90.08)。
50%待验证schemagate 对每个生成的查询在执行前进行策略校验,移除这一步骤会使违规率翻倍。
50%待验证测试仅使用一个模型(Claude Sonnet 4.5),而论文测试了十三个模型。
50%待验证schemagate采用三层机制:角色策略即可见性、一行提示声明视图不完整、执行前的作用域检查。
50%待验证使用Claude Sonnet 4.5运行五次,schemagate在BIRD上的AC-F1为90.1,论文最佳配置为88.1。
50%待验证在BIRD上,schemagate应拒绝却作答的比例为5.4%,低于论文最佳配置的7.4%。
50%待验证在Spider上,schemagate与论文最佳配置的AC-F1同为93.0,但schemagate误答率为5.1%,略高于论文的4.6%。
50%待验证schemagate在BIRD和Spider两个数据集中均未出现读取禁止数据的SQL。
50%