none
Log di SQL Server 2005 RRS feed

  • Domanda

  • Ciao a tutti.

    Secondo voi, massimi esperti di SQL Server, è possibile che esista un evento esterno che possa determinare un cambiamento in una property di un campo di una tabella all'interno di un'istanza di SQL Server 2005?

    In particolare può accadere qualcosa (compresa l'invasione aliena) che magicamente fa "perdere" ad un ID la sua property di Identity e di auto incremento?

    Dopo questa domanda della quale credo di sapere già la risposta, ne viene un'altra ovvia, un po' più seria. Se qualcuno si connette con un client Visual Studio 2005 (o con qualsiasi altro strumento simile) ad un server SQL Server 2005 (e magari è in possesso delle credenziali di "sa" perché si tratta proprio di chi ha installato il prodotto) e lancia una query (un esempio a caso, un "ALTER TABLE"), è possibile trovare traccia di questa attività nei log di SQL Server 2005?

    Ad essere più precisi, dove devo concentrare la mia ricerca se sto cercando la query, l'IP dalla quale è partita e e data/ora?

    Nel caso non fosse possibile questo livello di dettaglio di cosa mi posso accontentare?

    Grazie infinite

    giaconet

    mercoledì 13 luglio 2011 10:41

Risposte

  • In particolare può accadere qualcosa (compresa l'invasione aliena) che magicamente fa "perdere" ad un ID la sua property di Identity e di auto incremento?

    No, in quanto la proprietà IDENTITY non può essere aggiunta/rimossa ad una colonna numerica già esistente.

    Dopo questa domanda della quale credo di sapere già la risposta, ne viene un'altra ovvia, un po' più seria. Se qualcuno si connette con un client Visual Studio 2005 (o con qualsiasi altro strumento simile) ad un server SQL Server 2005 (e magari è in possesso delle credenziali di "sa" perché si tratta proprio di chi ha installato il prodotto) e lancia una query (un esempio a caso, un "ALTER TABLE"), è possibile trovare traccia di questa attività nei log di SQL Server 2005?

    I comandi di ALTER TABLE vengono tracciati nel transaction log del db in esame che puoi esplorare con appositi tools solo se il recovery model è impostato a full o bulk-logged.

    Ad essere più precisi, dove devo concentrare la mia ricerca se sto cercando la query, l'IP dalla quale è partita e e data/ora?

    Queste info le puoi tracciare con il Profiler o con una trace.

    Ciao!


    Lorenzo Benaglia
    Microsoft MVP - SQL Server
    http://blogs.dotnethell.it/lorenzo
    http://social.technet.microsoft.com/Forums/it-IT/sqlserverit
    • Contrassegnato come risposta giaconet mercoledì 13 luglio 2011 13:31
    mercoledì 13 luglio 2011 11:18
    Moderatore

Tutte le risposte

  • In particolare può accadere qualcosa (compresa l'invasione aliena) che magicamente fa "perdere" ad un ID la sua property di Identity e di auto incremento?

    No, in quanto la proprietà IDENTITY non può essere aggiunta/rimossa ad una colonna numerica già esistente.

    Dopo questa domanda della quale credo di sapere già la risposta, ne viene un'altra ovvia, un po' più seria. Se qualcuno si connette con un client Visual Studio 2005 (o con qualsiasi altro strumento simile) ad un server SQL Server 2005 (e magari è in possesso delle credenziali di "sa" perché si tratta proprio di chi ha installato il prodotto) e lancia una query (un esempio a caso, un "ALTER TABLE"), è possibile trovare traccia di questa attività nei log di SQL Server 2005?

    I comandi di ALTER TABLE vengono tracciati nel transaction log del db in esame che puoi esplorare con appositi tools solo se il recovery model è impostato a full o bulk-logged.

    Ad essere più precisi, dove devo concentrare la mia ricerca se sto cercando la query, l'IP dalla quale è partita e e data/ora?

    Queste info le puoi tracciare con il Profiler o con una trace.

    Ciao!


    Lorenzo Benaglia
    Microsoft MVP - SQL Server
    http://blogs.dotnethell.it/lorenzo
    http://social.technet.microsoft.com/Forums/it-IT/sqlserverit
    • Contrassegnato come risposta giaconet mercoledì 13 luglio 2011 13:31
    mercoledì 13 luglio 2011 11:18
    Moderatore
  • Lorenzo, innanzitutto grazie.

    A rischio di essere un po' "scostumato" (da utente che vuole la pappa pronta), posso chiederti qualche riferimento più preciso (dove vedo se il recovery model è impostato su full, cosa è un profiler, dove lo trovo, dove lo installo, ecc.). Non sono diciamo un "esperto" di SQL Server e mi è caduta questa enorme rogna stamattina sui piedi (pensa che sto facendo una enorme raccolta di log che dovrò poi firmare digitalmente).

    Prometto di ricambiare con qualsiasi info dovesse mai servirti in ambito di networking :-)

    Grazie

    giaconet

    mercoledì 13 luglio 2011 11:22
  • dove vedo se il recovery model è impostato su full
    EXEC sp_helpdb <nome db>;
    


    Nella colonna status guarda cosa c'è scritto in corrispondenza di Recovery=.

     

    cosa è un profiler, dove lo trovo, dove lo installo
    Leggi qui.
    Lorenzo Benaglia
    Microsoft MVP - SQL Server
    http://blogs.dotnethell.it/lorenzo
    http://social.technet.microsoft.com/Forums/it-IT/sqlserverit
    mercoledì 13 luglio 2011 11:36
    Moderatore
  • Ok, il recovery è FULL e sto cercando di capire come funziona il Profiler.

    Per adesso però, mi sembra uno strumento di registrazione "live": lo apro, registro una traccia, l'analizzo.

    Immagino che in qualche modo dovrei "collegarlo" al Transaction Log per vedere le "tracce" già registrate al suo interno, giusto?

    Sono nella direzione giusta?

     

    Grazie

    giaconet

    mercoledì 13 luglio 2011 13:04
  • Tutto ok. Risolto. (E trovato anche il colpevole).

    Grazie

    giaconet

    mercoledì 13 luglio 2011 13:30