Home > News > Breaking News > sqlcmdcli – Nuova opzione per il comando anonymizedb

sqlcmdcli – Nuova opzione per il comando anonymizedb

Nel precedente articolo Data masking con sqlcmdcli abbiamo trattato il tema complesso dell’anonimizzazione dei dati quando si deve prelevare un database di produzione per effettuare test in ambiente di sviluppo anche all’esterno del perimetro aziendale del cliente. Una possibile soluzione è quella di mascherare i dati sensibili su una copia del database di produzione chiedendo al cliente di effettuare le opportune verifiche prima di darci l’autorizzazione definitiva a prelevare la copia dei dati anonimizzata.

Il comando anonymizedb della command line interface sqlcmdcli permette di effettuare questo tipo di anonimizzazione, non reversibile, su tutte le colonne di tipo testo di un database. Il comando anonymizedb è stato recentemente arricchito di nuove opzioni che permettono di effettuare l’operazione di anonimizzazione di una colonna specifica limitando l’operazione solo ai dati sensibili per l’azienda o privati per le persone.

Scarichiamo l’ultima release di sqlcmdcli dal repository GitHub in cui è pubblicata, la trovate qui.

Estraiamo l’exe contenuto all’interno del file sqlcmdcli.zip e lo posizioniamo, per esempio, nella directory C:\SQL\Tools\sqlcmdcli.

La VM in cui si effettuerà il test ha una installazione locale di SQL Server 2022 Developer Edition che ospita il database di esempio WideWorldImporters la cui guida di installazione è disponibile qui.

Si desidera anonimizzare la colonna PhoneNumber della tabella Application.People del database WideWorldImporters. La colonna PhoneNumber contiene infatti il numero di telefono dei dipendenti dell’azienda. Lo stesso ragionamento può essere esteso alla colonna LogonName, EmailAddress, ecc…sqlcmdcli è in grado di anonimizzare la colonna PhoneNumber eseguendo il seguente comando:

sqlcmdcli.exe anonymizedb -servername:sql2022 -databasename:WideWorldImporters -username:xxxxx -password:xxxxx -schemaname:Application -tablename:People -columnname:PhoneNumber -verbose

L’output con l’opzione -verbose attiva è illustrato nella figura seguente:

La colonna PhoneNumber è stata anonimizzata, procediamo con l’anonimizzazione della colonna LogonName con il seguente comando:

sqlcmdcli.exe anonymizedb -servername:sql2022 -databasename:WideWorldImporters -username:xxxxx -password:xxxxx -schemaname:Application -tablename:People -columnname:LogonName -verbose

L’output è illustrato nella figura seguente:

Anche la colonna LogonName è stata anonimizzata, questo è il risultato:

PersonID    LogonName                                          FullName
----------- -------------------------------------------------- ---------------------
2           qgrg}F}ojk}uxrjosvuxzkxy4ius                       Kayla Woodcock
3           n{jyutuF}ojk}uxrjosvuxzkxy4ius                     Hudson Onslow
4           oyghkrrgxF}ojk}uxrjosvuxzkxy4ius                   Isabella Rupp
5           k|gsF}ojk}uxrjosvuxzkxy4ius                        Eva Muirden
6           yuvnognF}ojk}uxrjosvuxzkxy4ius                     Sophia Hinton
7           gszF}ojk}uxrjosvuxzkxy4ius                         Amy Trefl
8           gtznutmF}ojk}uxrjosvuxzkxy4ius                     Anthony Grosse
9           groiglF}ojk}uxrjosvuxzkxy4ius                      Alica Fatnowna
10          yzkrrgxF}ojk}uxrjosvuxzkxy4ius                     Stella Rosenhain
11          kzngtuF}ojk}uxrjosvuxzkxy4ius                      Ethan Onslow
12          nktxlF}ojk}uxrjosvuxzkxy4ius                       Henry Forlonge
13          n{jyutnF}ojk}uxrjosvuxzkxy4ius                     Hudson Hollinworth
14          roriF}ojk}uxrjosvuxzkxy4ius                        Lily Code
15          zgpyF}ojk}uxrjosvuxzkxy4ius                        Taj Shand
16          gxinkxrF}ojk}uxrjosvuxzkxy4ius                     Archer Lamble
17          vovkxqF}ojk}uxrjosvuxzkxy4ius                      Piper Koch
18          qgzokjF}ojk}uxrjosvuxzkxy4ius                      Katie Darwin
19          pgoyF}ojk}uxrjosvuxzkxy4ius                        Jai Shand
20          pgiqvF}ojk}uxrjosvuxzkxy4ius                       Jack Potter

E’ importante ricordare che questa tecnica di anonimizzazione non è reversibile e non deve essere utilizzata in produzione!

Buon divertimento con sqlcmdcli e se qualcuno volesse contribuire al progetto e il benvenuto!

Chi è Sergio Govoni

Sergio Govoni è laureato in Scienze e Tecnologie Informatiche. Da oltre 16 anni lavora presso una software house che produce un noto sistema ERP, distribuito a livello nazionale ed internazionale, multi azienda client/server su piattaforma Win32. Attualmente si occupa di progettazione e analisi funzionale, coordina un team di sviluppo ed è responsabile tecnico di prodotto. Lavora con SQL Server dalla versione 7.0 e si è occupato d'implementazione e manutenzione di database relazionali in ambito gestionale, ottimizzazione delle prestazioni e problem solving. Nello staff di UGISS si dedica alla formazione e alla divulgazione in ambito SQL Server e tecnologie a esso collegate, scrivendo articoli e partecipando come speaker ai workshop e alle iniziative del primo e più importante User Group Italiano sulla tecnologia SQL Server. Ha conseguito la certificazione MCP, MCTS SQL Server. Per il suo contributo nelle comunità tecniche e per la condivisione della propria esperienza con altri, dal 2010 riceve il riconoscimento SQL Server MVP (Microsoft Most Valuable Professional). Nel corso dell'anno 2011 ha contribuito alla scrittura del libro SQL Server MVP Deep Dives Volume 2 (http://www.manning.com/delaney/).

Leggi Anche

Agenda del Data Saturday Pordenone 2023!

E’ stata pubblicata l’agenda del Data Saturday Pordenone 2023! L’evento si terrà sabato 25 febbraio …