2010-08-13 81 views
1

我有一個Web應用程序,它將無效的登錄嘗試記錄到數據庫表中。如何在達到特定閾值後執行觸發器?

有沒有辦法在表格上創建一個觸發器,只有在最近幾小時左右創建了一定數量的記錄後才能運行,缺少類似if count(*) > 100的東西?

最終目標是發送電子郵件,如果登錄嘗試失敗次數異常。

回答

1

爲什麼觸發器?創建一個每n分鐘運行一次的SQL代理作業。您是否在過去一小時,其中有超過100次無效的登錄嘗試,如果這是真的運行數據庫郵件PROC與細節,查找sp_send_dbmail

+0

聽起來像一個更好的方法 - 謝謝。 – chris 2010-08-13 14:18:05

0

你不能。最好的選擇是將檢查放入觸發器本身。

1

創建的每一種情況下運行的觸發,並將它是否採取進一步行動的條件得到滿足。如果繼續採取的行動不想要(比如,在過去一小時嘗試102),你可以將它記錄在另一張表最後採取了這樣的行動時,則會使它必須> 100失敗每小時嘗試的標準和它必須是一個自上次這種行爲以來的小時數。

1

不要用觸發器來做到這一點。創建一個作業來監視過去一小時內失敗的登錄次數,如果超過某個閾值,則發送一封電子郵件。讓它每小時運行一次。

相關問題