Dynamische Datenmaskierung durch Verschlüsselung
Dieses Lernprogramm enthält Anweisungen zur Konfiguration und Verwendung der dynamischen Datenmaskierung mit Verschlüsselung im Netezza Performance Server.
Die dynamische Datenmaskierung hilft, den unbefugten Zugriff auf sensible Daten in Datenbankobjekten wie Feldern oder Tabellenspalten zu verhindern, indem sie diese vor nicht privilegierten Benutzern maskiert. Die Maskierungsregeln werden nur auf die Abfrageergebnisse angewandt, die Daten in der Datenbank bleiben davon unberührt, so dass sie von anderen Anwendungen, die Zugriff auf diese Daten benötigen, verwendet werden können.
Informationen zu dieser Task
Das folgende Beispielschema wird in diesem Lehrgang verwendet:

Die Spalten " customer_name
und " customer_address
sind die sensiblen Spalten, die maskiert und verschlüsselt werden müssen. Von allen Benutzern, die auf diese Tabellen zugreifen können (d. h. sie haben das " SELECT
), dürfen nur diejenigen, die die Rolle " ACCOUNTS
haben, die beiden sensiblen Spalten sehen. Für andere Benutzer werden diese Werte durch Verschlüsselung maskiert.
Die Standardmethode hierfür besteht darin, den Zugriff auf die zugrunde liegenden Tabellen einzuschränken und die Tabellen mit Ansichten zu überlagern, die die Werte in Abhängigkeit von der Rolle des Benutzers ändern. Dazu benennen Sie zunächst die zugrundeliegende Tabelle um und erstellen dann eine Ansicht unter Verwendung des ursprünglichen Namens der Tabelle, die verschlüsselte Werte für die sensiblen Spalten auf der Grundlage der Rollen projiziert, die Zugriff haben.
Vorgehensweise
Ergebnisse
alice
benötigt einen Bericht über die Gesamtsumme von " order_amount
, aufgeschlüsselt nach dem Code des Bundeslandes:select
sum(order_amount) as total,
customer_state
from customers inner join orders using (customer_id)
group by customer_state;
SUMME | KUNDEN_STAND |
10750.01 | NY |
2000.00 | TX |
99.99 | XX |
Alice kann auf KUNDEN zugreifen (die maskierte Ansicht). Die Spalte " customer_id
ist nicht verschlüsselt und wird zur Verknüpfung mit der Tabelle ORDERS verwendet. Die Spalte " customer_state
ist nicht verschlüsselt und wird für das Roll-up (nach Bundesland) verwendet. Aber " customer_name
und " customer_address
sind empfindlich. Wenn sie sich dafür entscheidet, sie einzusehen, werden sie verschlüsselt:
select * from customers order by customer_id;
CUSTOMER_ID | KUNDEN_NAME | KUNDEN_ADRESSE | KUNDEN_STAND | KUNDEN_ZIP |
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
zu übernehmen, die es ihr erlaubt, die unverschlüsselten Quelldaten zu sehen:set role accounts;
select * from customers order by customer_id;
CUSTOMER_ID | KUNDEN_NAME | KUNDEN_ADRESSE | KUNDEN_STAND | KUNDEN_ZIP |
10031 | Mark F | 234 Hauptstraße | TX | 90210 |
21451 | Clark K | 1 Metropolis Ave. | NY | 55555 |
43918 | Bruce W | 1600 Gotham Lane | NY | 98765 |
60844 | Peter P | 500 Fifth Ave. | NY | 55554 |
80008 | Diana P | Insel Themyscira | XX | 0 |