Server SQL 2005 Variazione Revisione
-
21-08-2019 - |
Domanda
C'è una costruito nel modo in SQL Server 2005 per controllare le cose specificamente come cancellare una stored procedure? C'è una tabella di storia che posso interrogare? Abbiamo uno sProc mistero che è scomparso un paio di volte.
Soluzione
È possibile costruire questo usando trigger DDL:
Altri suggerimenti
Solo se si utilizza trigger DDL o utilizzare Profiler per tracciare testo "% GOCCIA% PROC% nomeproc%"
Si noti che in SQL Server 2008 hanno anche ora hanno AUDIT di sostituire Profiler Tracce per le attività auding. E 'simile ma ha una sua interfaccia utente di configurazione e interfaccia utente per visualizzare i risultati
È possibile impostare una traccia di Profiler per acquisire l'evento Object Management Audit Schema e filtro in base al nome del database a cui tieni. Ogni volta che viene creato un oggetto nello schema, è sceso, a cura si sparerà un evento in profiler che include la persona che ha fatto il cambiamento e il nome della stored procedure.
Si vuole almeno queste colonne Profiler: ApplicationName - nome utente applicazione è in esecuzione quando hanno fatto il cambiamento DatabaseName - Databse che contiene l'oggetto è cambiato EventSubClass - Tipo di azione mostra alterare, modificare, Goccia, ecc Crea LoginName - utente che effettua il cambiamento ObjectName - oggetto influenzato
[tarda ma aggiunge dettagli su come vedere chi ha effettuato la modifica, anche prima che il sistema di controllo è messo in atto]
Altri hanno già coperto diversi modi è possibile avviare i dati di controllo al fine di monitorare i cambiamenti futuri, ma se in origine non avevano alcun sistema di controllo sul posto, allora è molto difficile scoprire chi ha fatto cosa e quando storicamente.
Solo opzione è quella di provare a leggere registro delle transazioni assumendo database è in modalità di recupero completo. Il problema è che questo non è supportato per impostazione predefinita. Le opzioni sono:
- strumenti di terze parti come ad esempio ApexSQL Log o Quest Toad
- funzioni non documentate, come DBCC LOG o fn_dblog
Vedere questi argomenti per maggiori dettagli:
come visualizzare log delle transazioni in SQL Server 2008
Sono d'accordo. Può essere il profiler SQL Server con i filtri. Il trigger DDL esisteva in SQL Server. Si potrebbe creare qualcosa di simile:
CREATE TRIGGER ddl_drop_procedure
ON DATABASE
FOR DROP_PROCEDURE
AS
RAISERROR ('You deleted a stored procedure',10, 1)
GO
L'altra opzione è quella di utilizzare strumenti di terze parti come Auto Audit da CodePlex, o ApexSQL grilletto.