我需要记录管理员更改某人密码和用户更改密码的事件。我怎么做?我找到了一个基于 Service Broker的不错的解决方案,但是结果表只包含进行更改的帐户的登录名,而不是受影响的帐户。
谁能告诉我如何改变这部分
INSERT dbo.PasswordChangeLog(LoginName)
SELECT @message_body.value('(/EVENT_INSTANCE/LoginName)[1]', 'sysname');
这样我也可以插入密码更改的对象吗?当然,我知道我将不得不ALTER dbo.PasswordChangeLog
添加一个额外的列。
您可以从 Service Broker 消息中的事件实例中提取更多数据以存储在表中。具体来说,TargetLoginName应该为您带回受影响的用户,这样的事情应该可以工作:
更多信息在这里。