2011年1月12日 星期三

SQL Server Profiler擷取到的奇怪指令syscharsets

今日利用SSMS的活動監視器觀察SQL Server的處理序怎麼異常暴增,平時看才兩三百個啊,今日一看怎麼七八百個呢,而且還持續增加中,一看殘留的指令大多都一樣,如下面這個指令
select c.name,c.description from master.dbo.syscharsets c where c.id = convert(tinyint, databasepropertyex ( db_name() , 'sqlcharset'))

直覺這個指令不太正常,正常應用程式不會去查系統資料表的啊,查字元集和排序順序作什呢?上網一查,嚇到我了,SQL Injection好像也會用這指令,可是我查了web連線數,web log與相關系統程式,都沒異常啊,我再用SQL Server Profiler擷取看看,這指令是一直出現沒錯,但前後跟隨的指令都很正常,懷疑這指令應該是系統背後運作的東東,應可忽略,至於為何處理序一直增加並未自動close,可能是同事修改程式沒處理好connection的關係,一問之下,程式還真的有作修改,請同事修正程式後就沒問題了
至於這查詢syscharsets系統資料表的指令,我寫了一個簡單的vbs,單純去撈SQL Server的資料,用的是ADODB.Connection,再用SQL Server Profiler擷取看看,結果不論是在SQL 2000或是2005,都會出現在Audit Login之後,在我要查詢的指令之前發生,由此推估應是系統背後運作東東吧,如下圖

0 意見:

張貼留言