创建 WMI 事件警报
本主题介绍如何使用 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 的详细信息,请参阅 将 WQL 与 WMI Provider for Server Events 结合使用。
本主题内容
开始之前:
若要创建 WMI 事件警报,可使用:
开始之前
限制和局限
SQL Server Management Studio 提供了一种易用的图形方式来管理整个警报系统,这也是配置警报基础结构的推荐方式。
用 xp_logevent 生成的事件在 master 数据库中发生。 因此,除非警报的 xp_logevent 为 'master' 或 NULL,否则 @database_name 不触发警报。
仅支持运行 SQL Server 代理的计算机上的 WMI 命名空间。
安全性
权限
默认情况下,只有 sysadmin 固定服务器角色的成员才能执行 sp_add_alert。
使用 SQL Server Management Studio
创建 WMI 事件警报
在 “对象资源管理器” 中,单击加号以展开要创建 WMI 事件警报的服务器。
单击加号以展开 “SQL Server 代理”。
右键单击“警报”并选择“新建警报”。
在 “新建警报” 对话框的 “名称” 框中,输入此警报的名称。
选中 “启用” 复选框将运行警报。 默认情况下, “启用” 为选中状态。
在 “类型” 列表中,选择 “WMI 事件警报”。
在“WMI 事件警报定义”下的“命名空间”框中,为标识触发该警报的 WMI 事件的 WMI 查询语言 (WQL) 语句指定 WMI 命名空间。
在 “查询” 框中,指定标识该警报所响应事件的 WQL 语句。
单击“确定”。
“使用 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)。