Log di sql server

mercoledì 19 maggio 2010 - 14.31

trappy Profilo | Newbie

salve a tutti, la domanda è questa: esiste la possibilità in sql server di tenere traccia di tutte modifiche fatte a determinate tabelle di un database? mi spiego meglio, un cliente prima mi fa fare delle attività e poi cancella alcuni dei dati negando anche la cosa (astenetevi dai commenti... bastano i miei!) e quindi mi chiedevo se c'era la possibilità di tenere traccia di tutte le modifiche avvenute, un pò come i file sotto giornale in ambiente AS400... in modo da poter affermare: in tale data è stata fatta questa modifica.... Tenere lo storico di tutti i backup giornalieri è un pò pesante, anche perchè non so quando il cliente ha queste brillanti idee...
grazie mille

lbenaglia Profilo | Guru

>salve a tutti, la domanda è questa: esiste la possibilità in
>sql server di tenere traccia di tutte modifiche fatte a determinate
>tabelle di un database?

Ciao,

SQL Server 2008 introduce le funzionalità di Change Tracking (tutte le edizioni) e Change Data Capture (solo Enterprise):
http://msdn.microsoft.com/en-us/library/cc280462.aspx
http://msdn.microsoft.com/en-us/library/bb522489.aspx
http://msdn.microsoft.com/en-us/library/cc280519.aspx

Per le edizioni precedenti non esiste niente di nativo ma occorre implementare qualcosa di manuale (ad esempio tramite triggers).

>grazie mille
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

alx_81 Profilo | Guru

>salve a tutti,
Ciao
>la domanda è questa: esiste la possibilità in
>sql server di tenere traccia di tutte modifiche fatte a determinate
>tabelle di un database? mi spiego meglio, un cliente prima mi
>fa fare delle attività e poi cancella alcuni dei dati negando
>anche la cosa (astenetevi dai commenti... bastano i miei!) e
>quindi mi chiedevo se c'era la possibilità di tenere traccia
>di tutte le modifiche avvenute, un pò come i file sotto giornale
>in ambiente AS400... in modo da poter affermare: in tale data
>è stata fatta questa modifica.... Tenere lo storico di tutti
>i backup giornalieri è un pò pesante, anche perchè non so quando
>il cliente ha queste brillanti idee...
Ci sono vari approcci, diciamo che dipende anche dalla versione del tuo sql server.
Puoi sempre creare qualcosa di applicativo (se l'utente usa un'applicazione per modificare il database).
Oppure puoi pensare di fare dei trigger dml o ddl in base all'evenienza.
O ancora puoi implementare il change data capture, se hai 2008: http://msdn.microsoft.com/en-us/library/bb522489.aspx
Se il cliente usa un'applicazione il log personalizzato è una delle soluzioni più precise ma ti obbliga ad re-implementare parte del software.
Se il cliente va direttamente su tabella senza passare da applicazione non è una bella cosa, ma in quel caso puoi fare trigger o cdc.

>grazie mille
di nulla!

--

Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5