3

私のジョブ エージェント ジョブの 1 つのスケジュールが最近無効になりました。ジョブ スケジュールを無効にしたのは、最終変更日以外の情報を見つける方法はありますか?

4

2 に答える 2

6

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;

独自のサーバー側トレース、拡張イベント セッション、イベント通知、または監査を設定して、将来この情報を確実に監査できるようにすることができます (または、チーム全体がジョブを台無しにする能力を単に制限することもできます)。

于 2013-09-30T19:15:50.793 に答える
4

簡単なのは、最近無効になったジョブやスケジュールを見つけることです。

-- Use msdb
use msdb
go

-- Jobs that have been recently disabled
select
  [name], [enabled], [date_created], [date_modified]
from sysjobs
where [date_modified] > '2013-09-30' and enabled = 0
order by [date_modified] desc
go


-- Schedules that have been recently disabled
select
  [name], [enabled], [date_created], [date_modified]
from sysschedules
where [date_modified] > '2013-09-30' and enabled = 0
order by [date_modified] desc
go

ユーザーまたはシステム管理者がジョブの所有権を取得しない限り、誰がジョブを実行したかを見つけるのは困難です。

私が考えたがうまくいかなかったのは次のとおりです。

1 - サーバーまたはエージェントのログにエントリはありますか? サイコロなし

2 - デフォルトのサーバー側トレースはイベントをピックアップしますか? サイコロなし

3 - 取引ログを見てその人物を見つけることはできますか? MSDB は単純な復旧モデルを使用します。 サイコロなし

4 - ヘルス チェック (拡張イベント) はこの情報を追跡しますか。私は疑問に思っていましたが、確認したかったのです。 サイコロなし

5 - これはエラーではないため、Windows イベントには何も記録されません。 サイコロなし

したがって、いくつかのグーグル検索の後、あなたはいくつかの解決策に陥っていると思います.

A - 適切なシステム テーブルでトリガーを作成し、監査情報を保存します。「望ましくないユーザー アクションを監査および防止する方法」に関する私のブログを参照してください。. これは、私が SQL Saturdays で行う本格的なプレゼンテーションです。

B - http://www.bimonkey.com/2009/12/sql-server-2008-auditing/監査仕様を作成しますが、出力ファイルを読み取る必要があります。

C - サーバー側のトレースまたは拡張イベントを追加して、データをキャプチャします。

幸運を。

ジョン

于 2013-09-30T19:42:31.027 に答える