使用SQL Server 2008R2登錄觸發器審計
我在登錄觸發器合作,抓住誰了。我已經創建了一個觸發登錄的用戶,但它捕獲SQL代理帳戶,並且將它像瘋了一樣。我想從列表中排除它,但我不確定如何修改觸發器以實現此目的。不同的嘗試鎖定了我,我不得不使用DAC來放棄觸發器。
原始代碼:
USE B_DBA;
GO
CREATE TRIGGER LogonTrigger ON ALL SERVER FOR LOGON
AS
BEGIN
IF SUSER_SNAME() <> 'sa'
INSERT INTO B_DBA.dbo.LogonAudit (UserName, LogonDate, spid)
VALUES (SUSER_SNAME(), GETDATE(), @@SPID)
END;
GO
ENABLE TRIGGER LogonTrigger ON ALL SERVER;
我想補充基本上是一個where子句,但我一直沒能成功地加入它,它不會對中頻部分工作。
Where not in (Select service_account from sys.dm_server_services)
任何幫助,將不勝感激。
如果您的應用程序驗證它的用戶,但使用一個單獨的SQL Server帳戶來訪問數據庫,那麼應用程序將需要記錄身份驗證。 – HABO
沒有涉及的應用程序。我只是插入每個登錄到數據庫的用戶。這將在多個服務器上,這就是爲什麼我需要動態的地方,而不是靜態帳戶。 – bwilliamson
@ H.Fadlallah請注意,[tag:sql]標籤僅適用於答案應該使用ISO/IEC標準SQL的問題(您可以在標籤的彈出窗口中閱讀該標籤)。這個問題沒有答案可能在標準的SQL。 [tag:tsql]標記用於T-SQL答案。 –