sql - Wireshark - 监听 SQL 查询但没有值

标签 sql firebird wireshark

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

从 SP_procedure_name(?,?,?) 中选择 *

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

最佳答案

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

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

无法禁用它,因为这是 Firebird 协议(protocol)工作方式的基本部分。

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

关于sql - Wireshark - 监听 SQL 查询但没有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37489733/

相关文章:

mysql - sql命令还是动态规划?

windows - Firebird 4 - 共享内存区域可能已由另一个 Windows session 中的另一个引擎实例创建

c++ - PCAP捕获文件头怎么写?

Java将xml属性放在HTTP请求的 "request version"部分

database - 如何在 Firebird 中将字符集从 ISO8859_1 转换为 UTF8?

networking - 重置 RST 标志后的 TCP 重传

mysql - 什么时候在 mysql 中使用 Union

sql - 平均每小时平均转置SQLite行和列

sql - 使用 WITH 子句即时更新创建的记录

firebird - 带 Pyramid 的独立 web2py-DAL - 请求、线程和内存