Prática recomendada para o SQL Server - configurando a auditoria para ações em um site ocupado

2

Eu tenho um site muito ocupado. Os usuários podem criar vários tipos de conteúdo, que podem ser votados para cima / para baixo, relatados como ofensivos, ativados / desativados por administradores, etc, etc. Quero ativar a auditoria de todas as ações realizadas no site.

O banco de dados que estou usando é o SQL Server 2005. Eu tenho duas opções na minha cabeça. A primeira é uma única tabela grande que contém a maioria dos detalhes necessários para as telas de auditoria, ou seja, os fragmentos de conteúdo são duplicados nesta tabela para remover a necessidade de ingressar em outras tabelas. A segunda solução é ter uma tabela de auditoria separada para cada tipo de conteúdo. Isso torna mais complexo recuperar um log de auditoria para um usuário, por exemplo, porque eles podem estar envolvidos com muitos tipos diferentes de conteúdo e, portanto, precisaremos recuperar dados de muitas tabelas diferentes.

Portanto, parece ser um compromisso entre o tamanho da tabela e a simplicidade da consulta. Existe alguma regra de ouro aqui - ou talvez seja incrivelmente óbvio que maneira é melhor?

    
por David Conlisk 08.12.2009 / 15:47

1 resposta

0

Isso não responde exatamente à sua pergunta, mas o documento é tão útil que você realmente se beneficiará com a leitura. Microsoft montou uma auditoria & guia de conformidade para o SQL Server 2008 (eu sei, não 2005) e contém uma tonelada de grandes informações sobre o assunto:

link

A situação que você está descrevendo é ótima candidata para o Change Data Capture do SQL Server 2008, que captura automaticamente os dados que você deseja gerenciar. Infelizmente, porém, é somente Enterprise Edition, o que significa que não é barato. Se você quiser evitar reinventar a roda, é o caminho a percorrer.

Quando você diz "site muito ocupado", isso desencadeia bandeiras vermelhas embora. Nenhuma dessas técnicas, mesmo as que você usa, terá pouca sobrecarga.

    
por 23.01.2010 / 16:11