如何通过代理对sql server操作语句进行审计

KingShine_亓 2013-02-18 04:17:16
想通过代理获取sql server客户端与服务器之间的网络数据,并对其进行解析,从而获得用户在客户端操作的sql语句,怎么样编写java程序实现这个代理?如何进行设置使客户端与服务器连接时经过本代理?如何对数据包进行解析?请各位高手帮帮忙!有急用!
...全文
163 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
mayuanf 2013-02-19
  • 打赏
  • 举报
回复
profiler, extended event, sql trace都可以
發糞塗牆 2013-02-18
  • 打赏
  • 举报
回复
这样也太乱来了吧,要获取操作的语句容易啊,直接在代理里面执行这个语句,然后存到一个表中你以后分析就可以拉 2008以上可用,但是要注意,对于超长代码,SQLServer貌似没有任何一个内置工具可以完整获取。
-- Current processes and their SQL statements  
SELECT PRO.loginame AS LoginName  
      ,DB.name AS DatabaseName  
      ,PRO.[status] as ProcessStatus  
      ,PRO.cmd AS Command  
      ,PRO.last_batch AS LastBatch  
      ,PRO.cpu AS Cpu  
      ,PRO.physical_io AS PhysicalIo  
      ,SES.row_count AS [RowCount]  
      ,STM.[text] AS SQLStatement  
FROM sys.sysprocesses AS PRO  
     INNER JOIN sys.databases AS DB  
         ON PRO.dbid = DB.database_id  
     INNER JOIN sys.dm_exec_sessions AS SES  
        ON PRO.spid = SES.session_id  
     CROSS APPLY sys.dm_exec_sql_text(PRO.sql_handle) AS STM       
WHERE PRO.spid >= 50  -- Exclude system processes  
ORDER BY PRO.physical_io DESC 
        ,PRO.cpu DESC;

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧