Sql-Server
在 MSSQL 中記錄安全事件
我需要記錄管理員更改某人密碼和使用者更改密碼的事件。我怎麼做?我找到了一個基於 Service Broker的不錯的解決方案,但是結果表只包含進行更改的帳戶的登錄名,而不是受影響的帳戶。
誰能告訴我如何改變這部分
INSERT dbo.PasswordChangeLog(LoginName) SELECT @message_body.value('(/EVENT_INSTANCE/LoginName)[1]', 'sysname');
這樣我也可以插入密碼更改的對象嗎?當然,我知道我將不得不
ALTER dbo.PasswordChangeLog
添加一個額外的列。
您可以從 Service Broker 消息中的事件實例中提取更多數據以儲存在表中。具體來說,TargetLoginName應該為您帶回受影響的使用者,這樣的事情應該可以工作:
SELECT @message_body.value('(/EVENT_INSTANCE/LoginName)[1]', 'sysname') AS [ActioningLogin], @message_body.value('(/EVENT_INSTANCE/TargetLoginName)[1]', 'sysname') AS [AffectedLogin]