Wireshark - 侦听SQL查询但没有值

时间:2016-05-27 18:00:45

标签: sql firebird wireshark

我想知道是否可以使用Wireshark将整个查询记录到Firebird 3.0数据库服务器。我能够记录一些通信,但我看到带有问号而不是值的查询。

select * from SP_procedure_name(?,?,?)

我没有看到任何可以传输这些值的数据包。这是某种类型的数据库通信加密吗?有没有办法禁用它并查看确切的提供值?

1 个答案:

答案 0 :(得分:3)

在Firebird有线协议中,分配了一个语句句柄(op_allocate_statement),在该句柄(op_prepare_statement)上准备了一个语句,然后您可以使用不同的值集多次执行该语句对于绑定参数(op_execute / op_execute2)。

因此,您在带有语句的wireshark跟踪中看到的数据包只是语句准备步骤。要查看您需要查看op_execute(或op_execute2)数据包的值。 Firebird线程协议是二进制的,因此除了字符串值之外,您不会轻易看到其他类型的值(例如,wireshark解析器不会对此进行解码)。

无法禁用此功能,因为这是Firebird协议工作原理的基本部分。

如果要检查执行时使用的参数,则应考虑查看Firebird跟踪工具。