我的一个工作代理人的工作时间表最近已被禁用,是否有除上次修改日期以外的其他信息来查找谁或什么人禁用了工作时间表?

最佳答案

默认情况下,SQL Server不会审核此信息,因此不会,事实发生后,您将无法使用此数据。 (我检查了默认跟踪,并且似乎没有在其中记录它。)如果自从重新启用该作业以来,您还没有可以将msdb.dbo.sysjobs.modified_date中的值与记录的其他信息相关联,但是我不知道您还能确定哪些其他事件与修改作业的用户属于同一用户。同样,如果尚未修改作业(或者您知道在修改之前对其进行了修改),并假设该更改发生在仍在默认滚动的当前滚动窗口内的时间范围内,则可以检查大约同一时间的其他活动:

DECLARE @ModifiedDate DATETIME;
SET @ModifiedDate = -- plug in the value here

DECLARE @path NVARCHAR(260);

SELECT @path = REVERSE(SUBSTRING(REVERSE([path]),
   CHARINDEX(CHAR(92), REVERSE([path])), 260)) + N'log.trc'
FROM sys.traces WHERE is_default = 1;

SELECT * FROM sys.fn_trace_gettable(@path, DEFAULT)
  WHERE EndTime >= DATEADD(MINUTE, -30, @ModifiedDate)
    AND EndTime <  DATEADD(MINUTE,  30, @ModifiedDate)
  ORDER BY EndTime DESC;


您可以设置自己的服务器端跟踪,扩展事件会话,事件通知或审核,以确保将来能够审核此信息(或仅限制整个团队处理工作的能力)。

07-24 09:37
查看更多