Create a WMI Event Alert
このトピックでは、SQL Server Management Studioまたは Transact-SQL を使用して、SQL Server 2014 の WMI Provider for Server Events によって監視される特定のSQL Server イベントが発生したときに発生するSQL Server エージェントアラートの方法について説明します。
WMI プロバイダーを使用してSQL Serverイベントを監視する方法の詳細については、「WMI Provider for Server Events Concepts」を参照してください。 WMI イベント警告の通知を受信するために必要な権限の詳細については、「 SQL Server エージェント サービスのアカウントの選択」を参照してください。 WQL の詳細については、「 WMI Provider for Server Events と WQL の使用」を参照してください。
このトピックの内容
作業を開始する準備:
WMI イベント警告を作成する方法:
はじめに
制限事項と制約事項
SQL Server Management Studio では、簡単かつグラフィカルに警告システム全体を管理でき、警告インフラストラクチャを構成するのにお勧めです。
xp_logevent で生成されたイベントは master データベースで発生します。 このため、 xp_logevent では、警告の @database_name が 'master' または NULL になっていないと、警告が起動されません。
SQL Server エージェントが実行されているコンピューター上の WMI 名前空間のみがサポートされます。
セキュリティ
アクセス許可
既定では、 sp_add_alert を実行できるのは、 sysadmin固定サーバー ロールのメンバーだけです。
SQL Server Management Studio を使用する
WMI イベント警告を作成するには
オブジェクト エクスプローラー で、プラス記号をクリックして、WMI イベントの警告を作成するサーバーを展開します。
プラス記号をクリックして [SQL Server エージェント]を展開します。
[警告] を右クリックし、 [新しい警告]をクリックします。
[新しい警告] ダイアログ ボックスで、 [名前] ボックスに新しい警告の名前を入力します。
[有効化] チェック ボックスをオンにして、実行する警告を有効にします。 既定では、 [有効化] チェック ボックスはオンになっています。
[種類] ボックスの一覧の [WMI イベント警告]をクリックします。
[WMI イベント警告定義]の [名前空間] ボックスで、この警告を発生させる WMI イベントを識別する WQL (WMI Query Language) ステートメントの WMI 名前空間を指定します。
[クエリ] ボックスで、警告が応答するイベントを識別する WQL ステートメントを指定します。
[OK] をクリックします。
Transact-SQL の使用
WMI イベント警告を作成するには
オブジェクト エクスプローラーで、 データベース エンジンのインスタンスに接続します。
[標準] ツール バーの [新しいクエリ] をクリックします。
次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。
-- creates a WMI event alert that retrieves all event properties for any ALTER_TABLE event that occurs on table AdventureWorks2012.Sales.SalesOrderDetail -- This example assumes that the message 54001 already exists. USE msdb ; GO EXEC dbo.sp_add_alert @name = N'Test Alert 2', @message_id = 54001 @notification_message = N'Error 54001 has occurred on the Sales.SalesOrderDetail table on the AdventureWorks2012 database. Please see the following information...', @wmi_namespace = '\\.\root\Microsoft\SqlServer\ServerEvents\, @wmi_query = N'SELECT * FROM ALTER_TABLE WHERE DatabaseName = 'AdventureWorks2012' AND SchemaName = 'Sales' AND ObjectType='Table' AND ObjectName = 'SalesOrderDetail''; GO
詳細については、「 sp_add_alert (Transact-SQL)」を参照してください。