现在的位置: 首页 > 综合 > 正文

TDS协议

2013年10月19日 ⁄ 综合 ⁄ 共 717字 ⁄ 字号 评论关闭

TDS是Sqlserver的通讯协议。如果了解TDS协议,在不加密的情况下就能做各种有趣的事:

  • 截获所有客户端发来的Sql语句
  • 获取所有结果集
  • 特定语句的执行耗时

因为抓包完全与Sqlserver服务端独立,所以不会对性能造成太大影响,至少比开profiler好。事实上,由于加密不是默认选项,几乎没人多此一举去加密TDS,除非是远距离的通信,我几乎没遇到过。

在这样前提下,WireShark之类就有了用武之地。可惜的是,TDS不是完全开放的协议,尽管微软和Sybase都公布了一定资料,但许多还是遮遮掩掩的。目前的两份协议是:

带着悲哀的心情去读这些协议可能更好:

The TDS protocol comes in several varieties, most of which had not been openly documented because they were considered to be proprietary technology.

FreeTDS是一个开源的TDS实现,使得PHP、Perl、Python等能直接连到Sqlserver。最有用的两篇是:

User Guide是推荐先看的。协议了解的越多就能更加深入的看问题,从本质上认识东西尽管很痛苦,但一旦掌握,就可不受制于特定工具给的接口。这和为什么学TCP/UDP/IP协议的道理一样。在最困难的时候,它们才是最好的朋友。

 

 

http://blog.proadm.net/?p=77

抱歉!评论已关闭.