找出谁删除了 SQL Server 表中的行

问题描述

最近事务复制失败,因为有人删除了表中的一行。已经通过在订阅者级别重新插入丢失的行来修复它,但我们需要找出谁删除了数据。已经尝试了以下脚本:-

DECLARE @TableName sysname
SET @TableName = 'dbo.t1_new'   --INPUT TABLE NAME

SELECT
    u.[name] AS UserName,l.[Begin Time] AS TransactionStartTime
FROM
    fn_dblog(NULL,NULL) l
INNER JOIN
    (
    SELECT
        [Transaction ID]
    FROM 
        fn_dblog(NULL,NULL) 
    WHERE
        AllocUnitName LIKE @TableName + '%'
    AND
        Operation = 'LOP_DELETE_ROWS'
    ) deletes
ON  deletes.[Transaction ID] = l.[Transaction ID]
INNER JOIN
    sysusers u
ON  u.[sid] = l.[Transaction SID]

由于数据库处于简单恢复模式,删除记录后事务日志已被清除。

对于如何获取罪犯用户的姓名还有其他建议吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)