Sql server 如何在客户端拦截SQL流量
我想记录客户端应用程序发送到我无权访问的远程SQL server的所有SQL。我正在考虑某种客户端代理,它可以记录和传递数据。它必须与客户端应用程序在同一台计算机上运行Sql server 如何在客户端拦截SQL流量,sql-server,Sql Server,我想记录客户端应用程序发送到我无权访问的远程SQL server的所有SQL。我正在考虑某种客户端代理,它可以记录和传递数据。它必须与客户端应用程序在同一台计算机上运行 任何想法都值得赞赏。SQL Server的协议TDS(“表格数据流”)默认情况下不加密,因此可以使用一个简单的数据包转发器来代理SQL Server连接和拦截命令(及其响应) TDS协议规范可从Microsoft网站获得,您可以编写自己的代理,以这种方式拦截命令: 然而,这是一项艰巨的任务。如果不需要捕获每个连接,您可以使用其他
任何想法都值得赞赏。SQL Server的协议TDS(“表格数据流”)默认情况下不加密,因此可以使用一个简单的数据包转发器来代理SQL Server连接和拦截命令(及其响应) TDS协议规范可从Microsoft网站获得,您可以编写自己的代理,以这种方式拦截命令: 然而,这是一项艰巨的任务。如果不需要捕获每个连接,您可以使用其他更简单的选项:
- 如果控制应用程序的源代码,则只需修改所有数据库操作即可截取每个
的SqlCommand
和CommandText
参数值
- 您可以跳过编写代理而使用本机数据包捕获,您需要使用
:WinPCap
- 您还可以使用SQL Server的分析功能获取执行的每个命令的日志:
SQL分析器
具体来说,您正在寻找一个API 我本人从未使用过剖析器的API,但看起来很有希望。
另外,请看另一个示例的问题 若你们想对一个正在工作的分析器客户端有一个印象,你们可以看看答案