我们有一个以完全恢复模式运行的 SQL Server 2012 Enterprise 数据库,每分钟运行一次事务日志备份。昨晚运行了一个查询,这意味着我们需要从某个时间点恢复数据——所以我们将事务日志恢复到那个时间点,恢复我们需要的数据,一切都很好。
我们想知道的是,有没有一种方法可以告诉我们使用事务日志备份来运行查询的登录名是什么?
我们有一个以完全恢复模式运行的 SQL Server 2012 Enterprise 数据库,每分钟运行一次事务日志备份。昨晚运行了一个查询,这意味着我们需要从某个时间点恢复数据——所以我们将事务日志恢复到那个时间点,恢复我们需要的数据,一切都很好。
我们想知道的是,有没有一种方法可以告诉我们使用事务日志备份来运行查询的登录名是什么?
将我的评论转换为答案:
从 T-log 备份读取时,您必须使用未记录的 fn_dblog Begin Time、SUSER_SNAME([Transaction SID]) 或 fn_dump_dblog。请小心并在 NON PROD 系统上尝试它,因为每次调用 fn_dump_dblog 时,它都会创建一个新的隐藏 SQLOS 调度程序和最多三个线程,这些线程在服务器重新启动之前不会消失(也不会被重用)。
此外,能够阅读 T-log 并得出结论并不是那么直接 - 如果您还没有这样做或者是新手。如果找出是谁弄得一团糟对您来说至关重要,那么您最好尝试使用3rd 方工具(例如 Apex SQL Log) 。