データベース監査、Extended Events、ログファイルなどを活用した特定のデータベースイベントの表示方法
SQL Server Profiler で特定のデータベースのイベントのみを表示する方法
SQL Server Profiler は、SQL Server インスタンスに対するアクティビティをトレースする強力なツールです。しかし、多くの場合、膨大な量のデータが生成されるため、特定のデータベースからのイベントのみを表示したい場合があります。
方法:
以下の手順で、特定のデータベースからのイベントのみを表示できます。
トレースの開始:
- SQL Server Profiler を起動します。
- 接続 ダイアログボックスで、トレース対象のサーバーインスタンスを選択します。
- 新しいトレース ダイアログボックスで、トレース名を入力します。
- テンプレート ドロップダウンリストから Standard を選択します。
- 開始 をクリックします。
フィルターの適用:
- トレース メニューから フィルター を選択します。
- 列フィルター タブを選択します。
- データベース名 列を選択します。
- 値 フィールドに、表示したいデータベースの名前を入力します。
その他の方法:
- イベントフィルター を使用して、特定の種類のイベントのみを表示できます。
補足:
- 上記の手順は、SQL Server 2017 を使用しています。他のバージョンでは、手順が多少異なる場合があります。
- 特定のデータベースからのイベントのみを表示するには、そのデータベースに対するアクセス許可が必要です。
用語解説:
- SQL Server Profiler: SQL Server インスタンスに対するアクティビティをトレースするツール
- トレース: SQL Server インスタンスに対するアクティビティの記録
- イベント: SQL Server インスタンスによって発生するアクション
- フィルター: 特定の条件に合致するイベントのみを表示するための設定
-- トレースの作成
USE [master]
GO
EXEC sp_trace_create @trace_name = N'MyTrace',
@template_id = 5
GO
-- フィルターの適用
EXEC sp_trace_setfilter @trace_name = N'MyTrace',
@column_name = N'DatabaseName',
@filter_value = N'MyDatabase'
GO
-- トレースの開始
EXEC sp_trace_start @trace_name = N'MyTrace'
GO
-- トレースの実行
-- ...
-- トレースの停止
EXEC sp_trace_stop @trace_name = N'MyTrace'
GO
-- トレースの削除
EXEC sp_trace_delete @trace_name = N'MyTrace'
GO
特定のデータベースのイベントのみを表示するその他の方法
SQL Server 2008 以降では、データベース監査を使用して、特定のデータベースに対するアクティビティを監査できます。データベース監査は、トレースよりも軽量で、パフォーマンスへの影響が少ない方法です。
Extended Events を使用する
SQL Server 2012 以降では、Extended Events を使用して、特定のデータベースに対するアクティビティをキャプチャできます。Extended Events は、トレースよりも柔軟で、より詳細な情報を収集できます。
ログファイルを使用する
SQL Server のログファイルには、データベースに対するすべての操作が記録されます。ログファイルを使用して、特定のデータベースに対するイベントを特定できます。
サードパーティ製のツールを使用する
特定のデータベースのイベントを表示するために使用できるサードパーティ製のツールも多数あります。
方法の選択
使用する方法は、要件と環境によって異なります。
以下は、各方法の利点と欠点です。
方法 | 利点 | 欠点 |
---|---|---|
データベース監査 | 軽量でパフォーマンスへの影響が少ない | トレースよりも機能が少ない |
Extended Events | 柔軟で詳細な情報を収集できる | 複雑で設定が難しい |
ログファイル | すべての操作が記録される | 解析が難しい |
サードパーティ製のツール | 使いやすい | 費用がかかる場合がある |
どの方法を選択する場合でも、事前にテストを行い、要件を満たしていることを確認することをお勧めします。
sql-server profiler sql-server-profiler