Estou configurando uma auditoria de banco de dados. Eu gostaria de capturar qualquer alteração DML emitida pelo usuário do banco de dados que não seja a conta de serviço relacionada ao aplicativo.
Resumindo, isso serve para provar aos nossos auditores externos que nenhum usuário está adulterando dados fora do aplicativo.
Este script a seguir configura uma auditoria DML que é global para todos os princípios.
CREATE DATABASE AUDIT SPECIFICATION [OurDatabaseAuditSpec]
FOR SERVER AUDIT [OurAudit]
ADD (DELETE ON OBJECT::[dbo].[SensitiveData] BY [public]),
ADD (INSERT ON OBJECT::[dbo].[SensitiveData] BY [public]),
ADD (UPDATE ON OBJECT::[dbo].[SensitiveData] BY [public])
WITH (STATE = ON)
GO
Como faço para modificar essa especificação de auditoria para capturar tudo, EXCETO o que está sendo feito pela conta de serviço do aplicativo?
Estou limitado a especificar cada princípio individualmente ou posso especificar uma exceção? Lendo o BOL, parece que só posso listar os princípios a serem auditados - não os princípios a serem ignorados.