2008-12-11 19 views
1

Existe-t-il une méthode intégrée dans SQL Server 2005 pour auditer des éléments tels que la suppression d'une procédure stockée? Y a-t-il une table d'historique que je peux interroger? Nous avons un sproc mystérieux qui a disparu plusieurs fois maintenant.SQL Server 2005 Modifier l'audit

Répondre

2

uniquement si vous utilisez DDL triggers ou utilisez profileur pour tracer le texte "% DROP% PROC% procname%"

0

Vous pouvez configurer un profileur trace pour capturer l'événement Audit Schema Object Management et filtre en fonction du nom de la base de données qui vous intéresse. Chaque fois qu'un objet dans le schéma est créé, supprimé, édité, il lancera un événement dans profiler qui inclut la personne qui a fait la modification et le nom de la procédure stockée.

Vous voulez au moins ces colonnes profileurs: ApplicationName - nom de l'utilisateur de l'application a été en cours d'exécution quand ils ont fait changer DatabaseName - Databse contenant l'objet modifié EventSubClass - Type d'action montre Alter, Modifier, Drop, Créer etc LoginName - utilisateur effectuant la modification ObjectName - objet affecté

1

Notez que dans SQL Server 2008, ils ont également maintenant AUDIT pour remplacer les traces de profileur pour les activités d'audition. Il est similaire, mais a sa propre interface de configuration et l'interface utilisateur pour afficher les résultats

0

[fin une, mais ajoute des détails sur la façon de voir qui a fait le changement avant même système d'audit est mis en place]

D'autres ont déjà couvert différents vous pouvez commencer à auditer des données afin de surveiller les changements futurs, mais si vous n'aviez pas de système de vérification à l'origine, il est très difficile de savoir qui a fait quoi et quand, historiquement. Seule l'option consiste à essayer de lire le journal des transactions en supposant que la base de données est en mode de récupération complète. Le problème est que ceci n'est pas supporté par défaut. Les options sont:

  • outils tiers tels que ApexSQL Log ou Quest Toad
  • fonctions non documentées telles que DBCC LOG ou fn_dblog

Voir ces sujets pour plus de détails:

How to view transaction log in SQL Server 2008

SQL Server Transaction Log Explorer/Analyzer

How to see query history in SQL Server Management Studio

0

Je suis d'accord. Il peut s'agir du profileur SQL Server avec des filtres. Les déclencheurs DDL existaient dans SQL Server. Vous pouvez créer quelque chose comme ceci:

CREATE TRIGGER ddl_drop_procedure 
    ON DATABASE 
    FOR DROP_PROCEDURE 
    AS 
    RAISERROR ('You deleted a stored procedure',10, 1) 

    GO 

L'autre option est d'utiliser des outils tiers comme Auto audit de CodePlex ou d'un déclencheur ApexSQL.