Mascheramento dinamico dei dati tramite crittografia
Questa esercitazione fornisce istruzioni su come configurare e utilizzare il mascheramento dinamico dei dati utilizzando la crittografia in Netezza Performance Server.
Il mascheramento dinamico dei dati aiuta a prevenire l'accesso non autorizzato ai dati sensibili negli oggetti del database, come i campi o le colonne delle tabelle, mascherandoli agli utenti non privilegiati. Le regole di mascheramento vengono applicate solo ai risultati della query e i dati del database non vengono toccati, per cui possono essere utilizzati da altre applicazioni che potrebbero aver bisogno di accedere a questi dati.
Informazioni su questa attività
In questa esercitazione viene utilizzato il seguente schema di esempio:

Le colonne 'customer_name e 'customer_address sono le colonne sensibili che devono essere mascherate e crittografate. Di tutti gli utenti che possono accedere a queste tabelle (cioè che hanno il privilegio 'SELECT ) solo quelli che hanno il ruolo 'ACCOUNTS sono autorizzati a visualizzare le due colonne sensibili. Per gli altri utenti questi valori sono mascherati tramite crittografia.
Il modo standard per farlo è limitare l'accesso alle tabelle sottostanti e sovrapporre alle tabelle delle viste che modificano i valori in base al ruolo dell'utente. A tale scopo, occorre innanzitutto rinominare la tabella sottostante e poi creare una vista, utilizzando il nome originale della tabella, che proietti valori criptati per le colonne sensibili in base ai ruoli che hanno accesso.
Procedura
Risultati
alice abbia bisogno di un report del totale 'order_amount, suddiviso per codice di stato:select
sum(order_amount) as total,
customer_state
from customers inner join orders using (customer_id)
group by customer_state;
| TOTALE | STATO DEL CLIENTE |
| 10750.01 | NY |
| 2000.00 | TX |
| 99.99 | XX |
Alice può accedere a CLIENTI (la vista mascherata). La colonna 'customer_id non è crittografata e viene utilizzata per eseguire un join con la tabella ORDINI. La colonna 'customer_state non è criptata e viene utilizzata per eseguire il roll-up (per stato). Ma 'customer_name e 'customer_address sono sensibili. Se decide di visualizzarle, sono criptate:
select * from customers order by customer_id;
| ID CLIENTE | NOME CLIENTE | INDIRIZZO_CLIENTE | STATO DEL CLIENTE | ZIP DEL CLIENTE |
| 10031 | &J.&#+RXV | /U/%9$,1WZJ\*?<1L3- | TX | 90210 |
| 21451 | INR0-F50_0 | 1U*"\(7H"V;3S%NH0]!= ['T | NY | 55555 |
| 43918 | I_*$)VM0X0 | 0U+;!="XWV;#T&^Y#F#=8[ | NY | 98765 |
| 60844 | M>6%(7Q0Y@ | -T+#!9$@9T+#T6L(5L0 | NY | 55554 |
| 80008 | H>F0*F]0Y@ | 1L>B4*7<#U:WN&Z,JISI7YS< | XX | 0 |
ACCOUNTS, che le consente di vedere i dati di origine non criptati:set role accounts;
select * from customers order by customer_id;
| ID CLIENTE | NOME CLIENTE | INDIRIZZO_CLIENTE | STATO DEL CLIENTE | ZIP DEL CLIENTE |
| 10031 | Marco F | 234 Main Street | TX | 90210 |
| 21451 | Clark K | 1 Metropolis Ave. | NY | 55555 |
| 43918 | Bruce W | 1600 Gotham Lane | NY | 98765 |
| 60844 | Pietro P | 500 Fifth Ave. | NY | 55554 |
| 80008 | Diana P | Isola di Themyscira | XX | 0 |