Por alguns motivos, gostaria de receber todos os erros de permissão negada (número 229) por e-mail. A verificação de master.sys.messages mostra que is_event_logged para este erro é 0. Portanto, isso exclui o uso de alertas de erro do SQL Server Agent, que dependem do log de erros do SQL Server (eu testei isso - não recebo nenhum alerta).
Achei que deveria dar uma olhada em mssqlsystemresource e ver a definição de exibição para sys.messages, pensando que talvez pudesse atualizar is_event_logged para a mensagem em questão. Mas esta exibição obtém a mensagem de erro do sistema de OpenRowset(TABLE SYSERRORS)
, então isso é impossível.
Existe uma maneira razoavelmente simples de receber todos os 229 erros por e-mail imediatamente (ou talvez em 30 segundos) sem prejudicar o desempenho do servidor? Um resfriamento de 60 segundos entre os e-mails provavelmente também seria uma boa ideia.
Oh, caramba, nem 30 segundos depois de postar isso, eu tropeço em sp_altermessage (naturalmente, depois de gastar uma quantidade significativa de tempo tentando descobrir se eu poderia fazer isso com eventos estendidos). Então, se alguém mais está se perguntando como fazer isso: