Immaginate di dover ripristinare un database dall’ambienti di produzione a quello di sviluppo per permettere agli sviluppatori di effettuare dei test su dati reali. Si pone il problema di offuscare informazioni riservate che possono essere il nome utente, il numero di carta di credito, ecc. ecc.
Il metodo tradizionale impone al dba di lanciare immediatamente una query sulle tabelle interessate per offuscare le informazioni riservate. Pur avendo tutti gli script a disposizione occorrerebbe eseguirli sul database e attendere il termine dell’esecuzione generando traffico “inutile” (specie su database molto grandi).
Il nuovo approccio grazie a SQL 2016, Dynamic Data Masking, offuscherà i dati “al volo” in fase di esecuzione della query. E’ disponibile sia su SQL Server 2016 che su Azure SQL Database V12.
Solo le login con gli adeguati privilegi avranno la visione “in chiaro” dei dati, tutti gli altri vedranno i dati offuscati.
Questo significa che, per esempio, le web app che utilizzano “connection pool” usando una singola login per tutti gli accessi al database non potranno usufruire di questa nuova funzionalità.
Dynamic Data Masking non esclude la possibilità di utilizzare altre funzionalità di protezione di SQL Server (auditing, la crittografia, la sicurezza a livello di riga …) (anzi!) è consigliato utilizzare queste funzioni in combinazione tra loro al fine di proteggere meglio i dati sensibili nel database.
Non è da sottovalutare la possibilità di effettuare query con una clausola WHERE su una colonna soggetta a “mascheramento” che ovviamente funziona! 🙂
Di seguito alcuni link utili