201101071625[SQL] Server Profiler - SQL Trace

 開始利用程式同時觀察多台 Server 的 EventLog 後,意外的發現某一台資料庫執行運作都正常,卻在記錄下一直出現 18456 登入失敗的錯誤訊息

↓ 很頻繁的稽核失敗訊息

↓ 但明明利用「SQL Server Configuration Manager」觀察每個 Service 運作都正常阿

怎麼事件檢視器裡會出現那些錯誤訊息呢?

關於 SQL 相關的訊息會被存放在
C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG

網路上的搜尋結果~可能會讓你朝向某執行帳號沒有某資料庫(Target DataBase)的權限導致無法正常存取,這時你會不經會想是不是曾經將資料庫搬來搬去,導致某個Database 的帳號不同於整體資料庫的名稱與權限。

整體資料庫:指的是你所安裝的 MS-SQL Service
某個Database:意指安裝於內的某一個 DataBase

當然~每台 Server 的狀態都不一樣,而我被誤導了,所以花了一段時間仔細的察看各 DataBase 與整體資料庫之間的帳號安全性設定。

也因為每個人狀況不同,也建議不要用猜的,不要浪費無意義的時間在網路上亂找,或查詢資料庫的設定。

SQL發生錯誤的問題,就請直接使用「MS SQL Server Profiler」來追蹤,這樣的錯誤狀況是源自於何原因

\\開始\所有程式\Microsoft SQL Server\效能工具\SQL Server Profiler

↓ 可以決定是否將追蹤結果寫到檔案裡

↓ 再來請切換到「事件選取範圍」頁籤

預設會選取一些追蹤的項目,你可以點下圖的右下角「顯示所有事件」來展開所有可以追蹤的項目,但請別全選阿~ Profiler 很好用,可以記錄很多東西,但也相對耗用系統資源

接著選取你要察看的項目,並把不需要的項目移除(打勾拿掉),我的問題是帳號登入失敗,所以選取了「Audit Login」、「Audit Login Failed」與「Audit Logout」,這樣我就可以看所有登入\登出的狀態了。

↓ 抓到了~找到了登入失敗的事件,下方也會顯示事件的訊息

乍看這個訊息跟事件檢視器看到沒啥不一樣,但~~請回頭看一下第二張圖片,跟下圖資訊有什麼差別......嘿嘿~多了 ApplicationName,這樣一來就清楚知道該對誰下手了

SQL server 的啟動會連帶跟 SQL Agent、Reporting Service、Analysis Service...等等有關,其中一個登入失敗都會發出「18456」稽核失敗的事件,經過 Profiler 追蹤後就可以辨別是哪一個服務造成的錯誤。

↓ 這是 Reporting Service 重新啟動時的錯誤,也就是他執行的權限有問題。


Reference

 

 

回應
Google Search
Google
平均分數:0 顆星
投票人數:0
我要評分:
Google