- 长臂猿-企业应用及系统软件平台
机器之心专栏
本文中,浙大的研究者提出了一种名为 Transformed Query Synthesis(TQS)的方法。在运行了 24 小时后,TQS 成功找到了 115 个漏洞,包括 MySQL 中 31 个、MariaDB 中 30 个、TiDB 中 31 个、PolarDB 中 23 个。

图 1:DBMS 中连接优化的逻辑漏洞示例
中的每个查询
,令查询优化器通过多个实际规划执行
的连接,并使用基本真值
验证其结果集
。如果
,则发现了一个连接优化漏洞。
表 1:符号说明表
方案概述
图 2:TQS 概况

和从
采样得到的宽表
,DSG 将单个宽表
拆分成多表,这些表格组成符合 3NF 的数据库模式
(第 2 行)。模式
可以被视为一个图
,其中表格和列是顶点,边代表的是顶点之间的关系。DSG 在
上使用随机游走来生成查询的连接表达(第 10 行)。事实上,连接查询可以被投射为
的子图。通过将子图映射回宽表格
,DSG 可轻松地检索到该查询的基本真值结果(第 12 行)。
来索引已有查询图的嵌入(第 9 行)。KQE 根据当前查询图与已有查询图的结构相似性来更新规划迭代图 G 的边权重 π (第 8 行)。KQE 为下一条可能路径评分,其引导着随机游走生成器,从而更倾向于探索未知的查询空间。
,TQS 通过提示集
对该查询进行变换,以执行多个不同的实际查询规划(第 11 行)。最后,将查询
的结果集与基本真值
进行比较(第 14 行)。如果它们不一致,那么就检测到了连接优化漏洞(第 15 行)。


© THE END
转载请联系本公众号获得授权
投稿或寻求报道:content@jiqizhixin.com
本文来自机器之心