Регистрация сообщения 229 с серьезностью 14 определенно поможет вам определить, когда происходят эти ошибки.
SELECT * FROM master.sys.messages
WHERE language_id=1033
AND severity=14
AND message_id=229;
Вы можете включить его с помощью:
EXEC sp_altermessage 229, 'WITH_LOG', 'true';
Я бы создал бы предупреждение об ошибках с уровнем серьезности 14, чтобы получать уведомления о его возникновении, для этого вам также потребуется установить оператора.
Единственное ограничение, которое это имеет, состоит в том, что он не дает вам логин, имя хоста или IP-адрес сеанса, в котором произошла ошибка. Он регистрирует SPID, и вам придется извлечь его, используя EXEC xp_readerrorlog, используя что-то вроде
EXEC xp_readerrorlog 0,1,'permission',NULL,NULL,NULL,'desc'
или откройте его в SSMS, а затем сопоставьте его с тем, что вы найдете в sysprocesses , используя
SELECT * FROM master.dbo.sysprocesses WHERE SPID='LoggedSPID'
Вы можете включить ведение журнала других сообщений, о которых вам может потребоваться знать, для этого, в первую очередь, проанализируйте уровень серьезности 14 и включите при необходимости.
SELECT * FROM master.sys.messages
WHERE language_id=1033
AND severity=14;