Tenho algumas auditorias e especificações de auditoria em uma instância do SQL Server 2012 e desejo reaplicar a auditoria e a definição de especificação de auditoria todas as noites, caso os DBAs a alterem. Eu medi o tempo necessário para fazer isso em uma das minhas caixas de desenvolvimento e é bem curto, mas ainda há uma janela onde alguns dados de auditoria podem ser perdidos. De um teste rápido que fiz para medir o tempo gasto:
AuditRecreate_ms
----------------
23
(1 row(s) affected)
AuditSpecRecreate_ms
--------------------
16
(1 row(s) affected)
Isso é possível com o SQLTrace porque você pode criar um novo rastreamento e, em seguida, excluir o antigo, sem que nenhum dado de auditoria seja perdido. Estou tentando me afastar do SQL Trace, mas manter uma auditoria ininterrupta, mas ao mesmo tempo garantir que as definições de auditoria não sejam alteradas. Alguma ideia aqui?
Envolver-se em uma corrida armamentista contra os administradores legítimos só causará atrasos e confusão.
Se você não pode aplicar acima, isso significa, por definição, que você não pode aplicar uma auditoria, então por que se preocupar?
Quanto à questão específica, este conselho se aplica sempre, a qualquer situação: não reaplique cegamente um modelo 'no caso de ter mudado', apenas aplique-o se tiver mudado.
Peça aos seus DBAs para ajudá-lo, não nos peça para ajudá-lo contra seus DBAs.