"Pulisci" un file di database di SQL Server creato con l'inizializzazione file istantanea abilitata?


8

Ho inizializzazione file istantanea abilitata sul nostro SQL Server, quindi la parte "vuota" del file di database non viene azzerata prima di essere allocata. La mia comprensione è che ciò significa che il file potrebbe contenere dati "eliminati".

Quindi ora voglio inviare una copia di un database (probabilmente un file di backup) all'esterno dell'azienda. Ma ci sono tutti quei dati "cancellati" potenzialmente sensibili presenti all'interno del file. Ora vorrei azzerare la parte inutilizzata del file.

È possibile? Immagino di poter creare un nuovo database e copiare tutto o forse ripristinare una copia del database su un altro server senza l'inizializzazione dei file istantanea abilitata e quindi essere aggressivo con un comando ShrinkFile per rimuovere la maggior parte o tutta la parte inutilizzata del file di database , ma esiste un metodo meno manuale e che richiede tempo? Idealmente un comando per dire a SQL di azzerare il file come avrebbe fatto se l'inizializzazione del file istantaneo non fosse abilitata.


Per riferimento generale, l'inizializzazione istantanea dei file di dati può essere temporaneamente disabilitata senza fare confusione con le autorizzazioni dell'account di servizio usando il flag di traccia 1806 mentre Paul Randal ha bloggato qui .
Jon Seigel,

Risposte:


5

Un BACKUP di SQL Server esegue solo il backup delle estensioni utilizzate per conservare i dati. Le estensioni non utilizzate vengono lasciate indietro dal backup. Quando una pagina viene utilizzata per i dati, verrà formattata per l'uso in base alle esigenze, in modo tale pagina sarebbe priva di vecchi dati.

Pertanto, tutto ciò che dovresti fare è eseguire il backup del database e ripristinarlo altrove. I file ripristinati avranno le stesse dimensioni del database originale, ma le estensioni non utilizzate verranno create utilizzando le funzionalità del server di destinazione. Questo può essere inizializzato completamente o istantaneamente utilizzando i blocchi del disco sul server di destinazione.

Tuttavia, poiché le estensioni sono il livello al quale avvengono i backup, le pagine inutilizzate nella misura in cui potrebbero comunque avere il potenziale per esporre alcuni dati quando ripristinati su un altro server. Non tanto quanto potrebbe essere esposto sul server di origine, poiché le estensioni non utilizzate non vengono ripristinate.


1
Estensioni non utilizzate in realtà. Teoricamente anche alcune delle estensioni utilizzate possono ancora contenere spazio con "vecchi dati", il che è un dribbling insignificante per SQL Server ma potrebbe essere un tesoro per un concorrente armato di un editor esadecimale e molto tempo libero. Se i tuoi dati sono così sensibili, non dovresti comunque azzerare tutti i file?
John Alan,

@JohnAlan - Modificato per riconoscere l'esposizione entro limiti.
RLF

I dati non sono esattamente roba di GCHQ - sono solo i dati di base dei clienti e simili, quindi è improbabile che qualcuno si impegnerà troppo per recuperarli. Non mi ero reso conto che i backup funzionassero così, anche se ha senso che dovrebbe. Se non c'è altra soluzione rapida e semplice, probabilmente lo farà.
Paolo

1

Hai considerato di ripristinarne una copia, abilitando TDE che lo costringerà a 0, quindi disabilitare nuovamente TDE? Non l'ho provato ma penso che funzionerà, dovremo comunque provarlo.

Qualcos'altro, hai preso in considerazione il ripristino di una copia di esso con IFI disabilitato, la creazione di un nuovo filegroup con nuovi file, la preselezione, la ricostruzione del cluster e altri indici sul nuovo filegroup, quindi l'eliminazione del filegroup esistente (se è il filegroup primario dovrai ridurlo poiché non puoi eliminare il primario)


L'uso di TDE sembra un approccio interessante, anche se non sono sicuro che rimuoverà più dati indesiderati rispetto al metodo di backup e ripristino. Se qualcuno conoscesse ulteriori informazioni a riguardo, sarei interessato a saperlo.
Paolo
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.