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

KingShine_亓 java开发工程师  2013-02-18 04:17:16
想通过代理获取sql server客户端与服务器之间的网络数据,并对其进行解析,从而获得用户在客户端操作的sql语句,怎么样编写java程序实现这个代理?如何进行设置使客户端与服务器连接时经过本代理?如何对数据包进行解析?请各位高手帮帮忙!有急用!
...全文
128 2 点赞 打赏 收藏 举报
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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;
  • 打赏
  • 举报
回复
相关推荐
发帖
疑难问题
加入

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2013-02-18 04:17
社区公告
暂无公告