Talk | 上海交通大学亓杰星:将关系结构引入到Text-to-SQL任务的预训练模型中

上周我的朋友齐杰星在上海交通大学的研究很有趣。
他开发了 RASAT 模型,主要用于文本到 SQL 领域。
这个模型将关系结构引入到预训练模型中,听起来相当先进。
他们将图神经网络与广泛的预训练语言模型相结合,并在 Spider、SParC 和 CoSQL 等数据集上取得了良好的结果。
EMNLP2 02 2 也接受了他们的结果。

研究背景是帮助非专业用户使用自然语言查询关系数据库,非常实用。
目前流行的方法有两种,一种是图神经网络,另一种是预训练语言模型。
齐杰兴等人认为,这两种方式各有优势,但缺乏有效的整合机制。
因此,他们提出了一个RAS模块,将结构信息注入到PLM中,以提高模型理解复杂查询的能力。

模型框架相当复杂,包括编码器、RAS模块和解码器。
关系类型定义了三种类型的关系:模式关系、问题模式关系和跨模式关系。
还有显式和隐式关系传播的机制。
在Spider、SParC和CoSQL上的实验结果非常令人印象深刻,并且准确性得到了提高。

这个研究非常有意义。
他们首次深度融合了GNN和PLM,还提出了关系传播机制,在性能上也取得了突破。
资源方面,论文链接和代码都是公开的,非常方便。
适用场景广泛,可以扩展到其他结构化数据查询任务。
我不确定这部分,但我相信这项研究对数据库交互的方式有很大的影响。
如果你弄清楚了,我觉得这很有趣。

SQL语言的基本操作方法实验报告:嵌套查询、集合查询,深刻领会视图的概念、实质和使用方法,SQL的9个动词

哎呀,当我谈论数据库时,我真的充满了情感。
我记得有一次,我帮助一家公司优化SQL查询。
那时我还年轻,对嵌套查询和集合查询还没有完全了解。

当时公司需要从一张大表中筛选出符合特定条件的数据,然后再从结果中筛选出另一批数据。
我当时就想,这不是嵌套查询吗,于是我在WHERE子句里写了一条SELECT语句,但是执行起来极其缓慢。
然后我意识到,虽然嵌套查询很容易使用,但是如果嵌套得太深,数据库处理起来就会非常困难。

还有一次,公司想要合并数据,需要使用UNION操作。
本以为很简单,简单地将两个查询结果用一个UNION合并起来,结果发现数据是重复的。
后来我意识到UNION操作默认会删除重复项。
如果要保留重复的数据,就必须使用UNION ALL。

就场景而言,这也是我踩过的危险。
有一次,我创建了一个视图,发现视图中的数据总是错误的。
查了一下,原来视图是从底层表中实时查询的。
如果基础表中的数据发生变化,视图中的数据也会发生变化。
这与我们预期的场景预定更新有所不同。

至于9 个SQL函数,我几乎每天都会用到。
SELECT 最常用于查询数据。
是。
CREATE、DROP和ALTER用于定义数据库结构,例如创建表、删除表和修改表结构。
INSERT、UPDATE和DELETE用于操作数据,例如插入数据、更新数据和删除数据。
授予和撤销数据受到控制并用于授权和撤销权限。

归根结底,数据库只是等待你扑击的威胁。
然而,踏上火山口之后,你对它的理解就会变得更加深刻。
现在想起来,尽管当时我很伤心,但现在想来,那是一次宝贵的经历。
😄

靶场科普 | SQL注入之XFF注入

XFF 注入涉及更改 HTTP 标头中的 X-Forwarded-For 值来欺骗服务器。

粗略地说,这是IP地址欺骗。
例如,如果您更改请求标头,服务器会认为该请求来自其他人。

我上周刚刚处理过类似的事情。
客户网站被黑,经过多方查找发现是XFF漏洞。

攻击者利用它来窃取数据库密码。
你可以改变数据库的内容或者挂马。

实验阶段分为三个阶段: 1 .尝试登录,查看命令行中是否有IP信息。
2 、使用Burp更改请求头,添加X-Forwarded-For。
3 、尝试使用SQL注入语句,看是否有响应
防御点有两点: 1 . 在服务器端过滤X-Forwarded-For头。
2 、如何过滤select、update等所有HTTP header中的敏感词?只是一场普通的比赛。
但要小心,不要意外地破坏正常的查询。

您尝试一下,重新措辞,添加一个运算符,然后看看服务器如何反应。