どのアプリケーションまたはサービスがmssqlのテーブルにレコードを挿入しているかを監視または知る方法/方法/ツールはありますか?
2 に答える
SQLクライアントツールのインストールの一部としてインストールした場合は、SQL Server Profiler
ツールを使用して、SQLサーバーの特定のインスタンスで発生するアクティビティのトレースを実行できます。これには、データベースにデータを挿入している実際のSQLバッチのキャプチャが含まれます。
トレースを設定するときに、SQL:BatchStarting
(TSQLイベントの下)イベントとRPC:Starting
(ストアプロシージャの下)イベントを選択します。イベントごとに、トレースに含める次のフィールドを選択します。
- textdata-実行されている実際のクエリが含まれます。挿入クエリについては、ここを参照してください。
- spid
- 始まる時間
- アプリケーション名-クライアントがアプリケーション名で構成されている場合、クライアント上のアプリケーションの名前が含まれます
- ClientProcessID-SQLServerを呼び出すクライアントアプリケーションのプロセスIDが含まれます
- DatabaseID
- データベース名
- HostName-クライアントが実行されているコンピューターの名前が含まれます
- LoginName-ユーザーのログイン(SQL ServerまたはWindowsログインのいずれか)が含まれます
DatabaseID
またはフィールドのいずれかにフィルターを追加DatabaseName
して、挿入を追跡することに関心のあるデータベースからのイベントのみをトレースが返すようにすることができます。
さらに、挿入がどのように行われるか(たとえば、挿入を実行するために呼び出される特定のストアプロシージャ)についてのアイデアがある場合は、textdata
フィールドにワイルドカードの形式でフィルタを定義でき%stored_procedure_name%
%
、それらの間のテキストは部分を表しますデータを挿入しているクエリの。
Microsoft SQL Server Management Studio をインストールすると、"アクティビティ モニター" に特定の接続のプロセス名 (および、最後に実行されたステートメントなど) が表示されます。