Question

Y at-il construit de manière dans SQL Server 2005 à des choses plus spécifiquement la vérification comme la suppression d'une procédure stockée? Y at-il une table d'historique que je peux interroger? Nous avons un sproc mystère qui a disparu quelques fois.

Était-ce utile?

La solution

Vous pouvez construire ce en utilisant des déclencheurs DDL:

http://msdn.microsoft.com/en-us/library /ms190989.aspx

Autres conseils

Seulement si vous utilisez ou déclencheurs DDL utiliser profileur pour tracer texte "% DROP% PROC% procname%"

Notez que dans SQL Server 2008, ils ont désormais AUDIT pour remplacer Profiler Traces pour les activités de auding. Il est similaire, mais a sa propre interface utilisateur et l'interface utilisateur configuration pour afficher les résultats

Vous pouvez configurer une trace profileur pour capturer le schéma d'audit événement de gestion d'objets et filtre basé sur le nom de la base de données que vous aimez. Chaque fois qu'un objet dans le schéma est créé, abandonné, édité événement sera déclenché en profileur qui inclut la personne qui a fait le changement et le nom de la procédure stockée.

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

[une fin, 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érentes façons dont vous pouvez commencer les données d'audit afin de surveiller les changements à venir, mais si vous avez initialement ne pas avoir un système d'audit en place, alors il est très difficile de savoir qui a fait quoi et quand historiquement.

Seule option est d'essayer de lire la base de données journal des transactions en supposant est en mode de récupération complète. Le problème est que ce n'est pas pris en charge par défaut. Les options sont:

Voir ces sujets pour plus de détails:

Comment afficher journal des transactions dans SQL Server 2008

Transaction SQL Server Log Explorer / Analyseur

Comment voir l'historique des requêtes dans la gestion SQL Server studio

Je suis d'accord. Il peut être le profileur SQL Server avec des filtres. Les déclencheurs DDL existait 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 consiste à utiliser des outils tiers comme Auto audit de CodePlex ou d'un déclencheur ApexSQL.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top