TDS协议

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值