Create a WMI Event AlertCreate a WMI Event Alert

이 항목 적용 대상: 예SQL Server없습니다Azure SQL 데이터베이스없습니다Azure SQL 데이터 웨어하우스 없습니다 병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse 이 항목에서는 SQL Server Management StudioSQL Server Management Studio 또는 Transact-SQLTransact-SQL을 사용하여 SQL Server 2017SQL Server 2017의 서버 이벤트에 대해 WMI 공급자가 모니터링하는 특정 SQL ServerSQL Server 이벤트가 발생할 때 발생하는 SQL ServerSQL Server 에이전트 경고에 대해 설명합니다. This topic describes how to a SQL ServerSQL Server Agent alert that is raised when a specific SQL ServerSQL Server event occurs that is monitored by the WMI Provider for Server Events in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

WMI 공급자를 사용하여 SQL ServerSQL Server 이벤트를 모니터링하는 방법에 대한 자세한 내용은 서버 이벤트용 WMI 공급자 클래스 및 속성을 참조하세요.For information about the using the WMI Provider to monitor SQL ServerSQL Server events, see WMI Provider for Server Events Classes and Properties. WMI 이벤트 경고 알림을 받는 데 필요한 사용 권한에 대한 자세한 내용은 SQL Server 에이전트 서비스의 계정 선택을 참조하세요.For information about the permissions necessary to receive WMI event alert notifications, see Select an Account for the SQL Server Agent Service. WQL에 대한 자세한 내용은 서버 이벤트용 WMI 공급자에 WQL 사용을 참조하세요.For more information about WQL, see Using WQL with the WMI Provider for Server Events.

항목 내용In This Topic

시작하기 전 주의 사항Before You Begin

제한 사항Limitations and Restrictions

  • SQL Server Management StudioSQL Server Management Studio 는 전체 경고 시스템을 간편하게 그래픽 방식으로 관리할 수 있도록 해 줄 뿐만 아니라 경고 인프라를 구성하는 데 있어서도 권장되는 방법입니다. provides an easy, graphical way to manage the entire alerting system and is the recommended way to configure an alert infrastructure.

  • master 데이터베이스에서 xp_logevent 로 생성된 이벤트가 발생합니다.Events generated with xp_logevent occur in the master database. 따라서 경고에 대한 xp_logevent@database_name 또는 NULL이 아닌 경우 xp_logevent 는 경고를 트리거하지 않습니다.Therefore, xp_logevent does not trigger an alert unless the @database_name for the alert is 'master' or NULL.

  • SQL ServerSQL Server 에이전트를 실행하는 컴퓨터의 WMI 네임스페이스만 지원됩니다.Only WMI namespaces on the computer that runs SQL ServerSQL Server Agent are supported.

보안Security

PermissionsPermissions

기본적으로 sysadmin 고정 서버 역할의 멤버만 sp_add_alert를 실행할 수 있습니다.By default, only members of the sysadmin fixed server role can execute sp_add_alert.

SQL Server Management Studio 사용Using SQL Server Management Studio

WMI 이벤트 경고를 만들려면To create a WMI event alert

  1. 개체 탐색기 에서 더하기 기호를 클릭하여 WMI 이벤트 경고를 만들려는 서버를 확장합니다.In Object Explorer, click the plus sign to expand the server where you want to create a WMI event alert.

  2. 더하기 기호를 클릭하여 SQL Server 에이전트를 확장합니다.Click the plus sign to expand SQL Server Agent.

  3. 경고 를 마우스 오른쪽 단추로 클릭하고 새 경고를 선택합니다.Right-click Alerts and select New Alert.

  4. 새 경고 대화 상자의 이름 상자에 이 경고의 이름을 입력합니다.In the New Alert dialog box, in the Name box, enter a name for this alert.

  5. 사용 확인란을 선택하여 경고를 실행할 수 있도록 합니다.Check the Enable check box to enable the alert to run. 기본적으로 사용 이 선택됩니다.By default, Enable is checked.

  6. 유형 목록에서 WMI 이벤트 경고를 선택합니다.In the Type list, select WMI event alert.

  7. WMI 이벤트 경고 정의네임스페이스 상자에 이 경고를 트리거할 WMI 이벤트를 식별하는 WQL(WMI Query Language) 문에 대한 WMI 네임스페이스를 지정합니다.Under WMI event alert definition, in the Namespace box, specify the WMI namespace for the WMI Query Language (WQL) statement that identifies which WMI event will trigger this alert.

  8. 쿼리 상자에 이 경고가 응답하는 이벤트를 식별할 WQL 문을 지정합니다.In the Query box, specify the WQL statement that identifies the event that this alert responds to.

  9. 확인을 클릭합니다.Click OK.

Transact-SQL 사용Using Transact-SQL

WMI 이벤트 경고를 만들려면To create a WMI event alert

  1. 개체 탐색기에서 데이터베이스 엔진Database Engine인스턴스에 연결합니다.In Object Explorer, connect to an instance of 데이터베이스 엔진Database Engine.

  2. 표준 도구 모음에서 새 쿼리를 클릭합니다.On the Standard bar, click New Query.

  3. 다음 예를 복사하여 쿼리 창에 붙여 넣고 실행을 클릭합니다.Copy and paste the following example into the query window and click Execute.

    -- 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.',  
        @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)를 참조하세요.For more information, see sp_add_alert (Transact-SQL).