错误 229(权限被拒绝)的即时电子邮件警报

db2*_*db2 3 sql-server-2008 sql-server

出于一些原因,我希望将所有权限被拒绝的错误(编号 229)通过电子邮件发送给我。检查 master.sys.messages 显示此错误的 is_event_logged 为 0。因此,排除使用依赖 SQL Server 错误日志的 SQL Server 代理错误警报(我已经测试过 - 我没有收到警报)。

我想我会查看 mssqlsystemresource 并查看 sys.messages 的视图定义,想也许我可以为相关消息更新 is_event_logged。但是这个视图从 获取系统错误消息OpenRowset(TABLE SYSERRORS),所以这是不行的。

有没有一种相当简单的方法可以让我立即(或在 30 秒内)通过电子邮件将所有 229 个错误发送给我,而不会损害服务器性能?电子邮件之间 60 秒的冷却时间也可能是一个好主意。

db2*_*db2 5

哦,该死的,在我发布这篇文章后不到 30 秒,我偶然发现了 sp_altermessage(当然,在花了大量时间试图弄清楚我是否可以用扩展事件来做到这一点之后)。因此,如果其他人想知道如何执行此操作:

EXEC sp_altermessage 229, 'WITH_LOG', 'true'
Run Code Online (Sandbox Code Playgroud)