出于某些原因,我希望将所有权限被拒绝的错误(编号 229)通过电子邮件发送给我。检查 master.sys.messages 显示此错误的 is_event_logged 为 0。因此排除了使用依赖于 SQL Server 错误日志的 SQL Server 代理错误警报(我测试过这个 - 我没有收到警报)。
我想我应该查看 mssqlsystemresource 并查看 sys.messages 的视图定义,想也许我可以更新 is_event_logged 以获取相关消息。但此视图从 中获取系统错误消息OpenRowset(TABLE SYSERRORS)
,因此这是不行的。
有没有一种相当简单的方法可以让我立即(或可能在 30 秒内)通过电子邮件将所有 229 个错误发送给我,而不会损害服务器性能?电子邮件之间 60 秒的冷却时间可能也是一个好主意。
哦,该死的,在我发布这篇文章后不到 30 秒,我偶然发现了 sp_altermessage(自然地,在花费大量时间试图弄清楚我是否可以通过扩展事件来做到这一点之后)。因此,如果其他人想知道如何执行此操作: