[分享]使用SQLServer Audit来监控触发器的启用、禁用情况
由于给小李子那个版主骗了,没啥可用分,所以就不散分了.....
使用情景:
有时候会发现在触发器中的业务逻辑没有执行,可能是因为触发器的逻辑错误所引起的。但是有时候却是因为一些触发器被禁用了。
由于SQLServer默认不跟踪触发器的启用还是禁用。且禁用触发器的命令(Disable Trigger)不在默认跟踪里面捕获。但是可以在服务器级别的跟踪(不是使用Profiler)获取这些信息,捕获SQL:StmtCompleted并在TextData列筛选,但是对于负载较重的系统,这样会有比较大的影响。
如果你的是企业版,可以考虑使用一个新特性:SQL Server Audit。可以使用DATABASE AUDIT SPECIFICATION来捕获这些事件。
使用步骤:
第一步,使用以下语句先创建服务器级别监控:
USE master;
GO
CREATE SERVER AUDIT ServerAudit
TO FILE (FILEPATH = 'E:\temp\', MAXSIZE = 1 GB)--注意更改文件路径
WITH (ON_FAILURE = CONTINUE);
GO
ALTER SERVER AUDIT ServerAudit
WITH (STATE = ON); 注意,路径需要修改,temp文件夹也要实现开启。第二步,创建数据库级别监控:
对于本文,我们关注SCHEMA_OBJECT_CHANGE_GROUP,以AdventureWorks为例子:
USE AdventureWorks;
GO
CREATE DATABASE AUDIT SPECIFICATION schema_change
FOR SERVER AUDIT ServerAudit
ADD (SCHEMA_OBJECT_CHANGE_GROUP)
WITH (STATE = ON);
GO 第三步,创建一个示例表,然后创建一个示例触发器:
CREATE TABLE dbo.splunge ( id INT ) ;
GO
CREATE TRIGGER dbo.splunge_trigger ON dbo.splunge
FOR INSERT
AS
BEGIN
SELECT 1 ;
END
GO 第四步,可以使用以下脚本来检查:
SELECT event_time ,
succeeded ,
server_principal_name ,
[object_name] ,
[statement]
FROM sys.fn_get_audit_file('E:\Temp\ServerAudit*', NULL, NULL)
WHERE database_name = 'AdventureWorks' ; 结果如下,可以看到捕获了创建的记录:
现在来禁用这个触发器,然后再查询一下:
DISABLE TRIGGER dbo.splunge_trigger ON dbo.splunge;
GO
SELECT event_time ,
succeeded ,
server_principal_name ,
[object_name] ,
[statement]
FROM sys.fn_get_audit_file('E:\Temp\ServerAudit*', NULL, NULL)
WHERE database_name = 'AdventureWorks' ;如果你重新启用这个触发器,你会再看到另外一行,如果觉得返回数据太多,可以在where语句中添加筛选:AND [statement] LIKE '%disable%trigger%' 但是有时候会存在误报,比如,在你的代码里面可能存在同样的信息。但是筛选数据对性能和检查问题总是有好处的。
小结:
捕获事件有很多种方式。此功能仅限2008企业版使用。
相关推荐
【工业自动化】欧姆龙PLC产品线与编程软件体系详解:基于西门子工程师视角的选型指导与避坑指南
内容概要:本文详细解析了欧姆龙PLC的产品线、编程软件体系、通信架构及选型策略,重点从西门子工程师视角出发,对比两者的定位差异与技术路径。文章明确指出欧姆龙存在两套不兼容的系统:传统的C系列(CP/CJ/CS)使用CX-Programmer软件和绝对地址编程,适用于单机设备与老线改造;新型Sysmac平台(NJ/NX/NY)采用Sysmac Studio集成开发环境,支持IEC 61131-3标签变量、EtherCAT运动控制和多领域一体化控制,代表当前技术高地。同时梳理了FINS、CompoWay/F、EtherCAT、EtherNet/IP等多层通信协议的区别,并列出从西门子转型易踩的八大误区,提供清晰的选型决策路径。; 适合人群:具备一定工业自动化背景,熟悉西门子PLC体系,正在转向或需要维护欧姆龙系统的工程师,尤其是从事设备选型、系统集成与产线升级的研发和技术人员。; 使用场景及目标:①帮助西门子背景工程师快速建立对欧姆龙双平台的认知框架;②指导正确选用CP/CJ/NJ/NX系列及配套软件;③避免在通信接口、地址体系、软件版本等方面出现典型错误;④实现老旧系统向新平台平滑迁移。; 阅读建议:此资源强调“先框架后细节”,建议读者先掌握三大平台分流和软件对应关系,再深入具体型号参数。特别注意2026年10月新版Sysmac Studio与CX-One对CJ3M系列的双向支持这一关键更新,在实际项目中需严格核对控制器固件与软件版本匹配性,防止因版本不兼容导致无法连接。
地级市到杭州北京深圳的球面距离.-最新出炉zip
一、资源特点 全新力作:今年精心打造,人工细细打磨,品质上乘。 权威精准:数据来源,准确靠谱,值得信赖。 品质无忧:绝无数据造假,品质有保障,放心使用。 二、适用人群 学生:在校专科生、本科生、研究生,助力学业各个环节。 教研人员:大学教师和学术科研工作者,为教学科研添力。 三、适用专业 社科经济:经济学、社会学专业适用。 规划管理:地理学、城市规划,以及商业、工商管理专业皆可使用。 [特别说明]相关资源数据已全部上传至网盘。 由于纯手工分享粘贴链接和提取码,不排除有极少提取码或者链接出现差错(或内容与标题对不上),若遇到这种情况,不要着急,请私信博主,将会第一时间更正补链接!
openeuler配置
openeuler系统环境配置管理
产业园区运营负责人如何提升园区内科技成果引进与落地的匹配效率?.docx
科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。
CISP-CSE注册云安全工程师备考资源包
CISP-CSE注册云安全工程师备考资源包


非技术版
