SQL Server 2005 Changement d'audit
-
21-08-2019 - |
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.
La solution
Vous pouvez construire ce en utilisant des déclencheurs DDL:
Autres conseils
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:
- outils tiers tels que ApexSQL Connexion ou Toad Quête
- fonctions sans papiers tels que DBCC LOG ou fn_dblog
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.