加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

TDS协议

发布时间:2020-12-12 15:17:53 所属栏目:MsSql教程 来源:网络整理
导读:TDS是Sqlserver的通讯协议。如果了解TDS协议,在不加密的情况下就能做各种有趣的事: 截获所有客户端发来的Sql语句 获取所有结果集 特定语句的执行耗时 因为抓包完全与Sqlserver服务端独立,所以不会对性能造成太大影响,至少比开profiler好。事实上,由于加

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

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

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

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

  • Sybase: TDS 5.0 Functional Specification
  • 微软: Tabular Data Stream Protocol Version 4.2

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

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。最有用的两篇是:

  • FreeTDS Reference Manual
  • FreeTDS User Guide

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

?

?

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读