Che tipo di informazioni di controllo sono memorizzate dal server di SQL quando viene eseguita un'operazione CREATE TABLE o ALTER TABLE?

StackOverflow https://stackoverflow.com/questions/984558

  •  13-09-2019
  •  | 
  •  

Domanda

L'ispirazione per questa domanda è un proc memorizzato ha rotto su di me perché si chiama un altro stored procedure che inserisce i dati in una tabella il cui schema era completamente alterata.

La domanda è: si dispone di una tabella di un database SQL Server, e non si sa come sia arrivato lì. Non è necessario alcun trigger DDL sul posto per le informazioni di controllo personalizzato, e non v'è alcuna traccia nel repository controllo del codice sorgente del DDL tabelle. Utilizzando solo SQL Server, quali dati forense si può ottenere sulla tabella.

Io, e chi si imbatte in questa domanda in una situazione simile, non sta per essere aiutato da suggerimenti per quanto riguarda il controllo delle versioni e trigger DDL. Queste sono soluzioni a termine grandi go, e c'è un sacco di informazioni su questo blog su questi argomenti, se la politica aziendale ci permette di implementare tali soluzioni. Quello che ho, e la gente nella mia situazione davvero bisogno è di essere in grado di raccogliere il maggior numero di frammenti di dati possibili dal server SQL, da combinare con qualsiasi altro dei dati che possiamo trovare.

È stato utile?

Soluzione

Purtroppo, non c'è modo di ricostruire ciò che è accaduto, ad eccezione di:

  • se gli amministratori di database hanno tracce in esecuzione e la storia. SQL Server 2005 ha una traccia di default e non v'è la traccia "Blackbox", ma questi sono utilizzati per scoprire cosa è successo a destra prima di un crash

  • se avete modello di recupero completo, allora si può provare uno strumento visualizzatore di log ( libero Red gate uno )

  • secondo l'attività e il vostro modello di sicurezza, si potrebbe anche verificare il registro di sicurezza di Windows per vedere chi connesso con privilegi DDL

  • i log degli eventi di SQL possono anche avere informazioni. Ad esempio, se è stato attivato il flag di traccia che registra gli errori "permesso", allora si può vedere quando ha cominciato. O la persona che ha effettuato la modifica può aver generato altre eccezioni che vengono registrati

  • si potrebbe chiedere aventi diritto. Potrebbe essere un vero e proprio errore (ad esempio, dicono che sono in dev)

Altri suggerimenti

La query seguente mi ha fatto il tempo di creare e modificare durare.

SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tbTableInQuestion]') AND type in (N'U')

Si dovrebbe essere in grado di trovare la creazione della tabella nel . log delle transazioni non ho mai usato uno qualsiasi degli strumenti visualizzatore qui, e io non riuscivo a capire come la ricerca indietro nel tempo per questo, ma tutto avviene in una transazione, quindi è devi essere registrato - anche il le tabelle di sistema ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top