In questi giorni si sono tenuti i
TechDays WPC 2008. Si tratta di un evento molto importante, rivolto a Sviluppatori ed ITPro , che avvicina gli utenti alle tecnologie del mondo
Microsoft.
Dopo una prima giornata di presentazioni e di sessioni interessanti, come quella di
Nino su SOA (ricordiamo il suo
usergroup connected systems), oggi ho seguito la sessione di Luca sulla protezione dei dati in
SQL Server 2008.
Come al solito
Luca è stato estremamente interessante e soprattutto la parte sull'Audit ha colpito tanto le persone presenti ad ascoltare.
In effetti l'audit degli eventi è una di quelle cose che un DBA dovrebbe sempre predisporre su ogni database, anche per avere un'ottima infrastruttura di monitoring delle risorse.
Tramite questa funzionalità infatti è possibile monitorare eventi di tipo SERVER o di tipo DATABASE.
Ad esempio, nel primo caso, è possibile controllare i login falliti, oppure le variazioni effettuate con
sp_configure.
Nel secondo posso controllare le select di un gruppo di utenze sul database oppure le alter degli oggetti, ecc.
Dopo aver definito un AUDIT OBJECT, che si crea tramite la
CREATE SERVER AUDIT.
In seguito è sufficiente creare varie
SERVER AUDIT SPECIFICATION o
DATABASE AUDIT SPECIFICATION.
Automaticamente verranno creati oggetti di AUDIT che registreranno gli eventi definiti dalle AUDIT specification.
Davvero molto utile ed interessante.
Altra parte importante trattata da Luca è stata quella della
TRANSPARENT DATA ENCRYPTION (TDE), un nuovo metodo con cui SQL Server 2008 utile cifra il nostro database in maniera trasparente e sicura.
Alcuni vantaggi rispetto alla cifratura disponibile con SQL Server 2005 sono:
- Tutto il db viene cifrato al momento del passaggio delle pagine dei dati dalla memoria al disco (con CHECKPOINT asincrono).
- Non si deve modificare l'applicazione con metodi di criptazione/decriptazione (EncryptByKey, ecc..)
Purtroppo la funzionalità esiste solo nella Enterprise Edition
.
L'encryption con TDE è un processo asincrono e si ottiene con semplici righe di codice. Partire da
qui per la documentazione in linea.
Per sapere quando il db è stato cifrato completamente è sufficiente interrogare questa management view:
SELECT * FROM sys.dm_database_encryption_keys (encryptionstate = 3, Completato)
il resultset porta con se le chiavi di tutti i db cifrati, compreso il tempdb.
Nel momento in cui cifro un qualunque database, cifro anche il tempdb.
Anche se decifro tutti i database precedentemente cifrati, il tempdb rimane cifrato fino al prossimo riavvio dell'istanza.
Il processo di TDE ha bassa priorità di CPU,quindi non abbiamo overhead significativi.
Insomma, sessione interessante.
E ora sono in attesa del pranzo qui all'Ask the Expert con
Mauro.. Nel prossimo post qualche foto
Stay Tuned!