sql >> Database >  >> RDS >> Database

Tabellen maskeren en referentiële integriteit behouden?

De “Nieuwe Multi Table Protection Job …” wizard in IRI Workbench die in dit artikel wordt beschreven, is een van de manieren waarop gebruikers van IRI FieldShield-producten (of IRI Voracity-platform) automatisch persoonlijk identificeerbare informatie (PII) kunnen maskeren in databasekolommen die deel uitmaken van een externe-sleutelrelatie, en zo de referentiële integriteit behouden tussen de tafels. Dit zorgt ervoor dat de records gekoppeld blijven, zelfs nadat ze zijn geanonimiseerd.

Merk op dat sinds 2018 een nieuwere en robuustere methode om hetzelfde resultaat te bereiken is gepubliceerd in ons artikel over de classificatie, detectie en maskering van meerdere databasetabellen hier, en wordt hier gedemonstreerd in YouTube-video's 1, 2, 3, 5 en 7.

Maar in deze originele en nog steeds populaire wizard behouden gebruikers de referentiële integriteit door maskeringsregels op veldniveau te definiëren die automatisch en consistent worden toegepast op gelijknamige kolommen. Elk van de ongeveer 14 categorieën van gegevensmaskeringsfuncties die beschikbaar zijn voor FieldShield-gebruikers, inclusief versleuteling, pseudonimisering en redactie, kan worden toegepast op basis van dergelijke regels.

Deze wizard is het meest geschikt voor gebruikers die meerdere tabellen in een schema maskeren en toewijzen die niet allemaal PII bevatten. IRI zou deze wizard bijvoorbeeld aanbevelen als u 50 tabellen heeft en ze allemaal naar een lagere omgeving moet verplaatsen, maar slechts 20 van de tabellen met PII hebt om consequent te maskeren (de andere 30 hebben geen PII).

Dit voorbeeld gebruikt slechts drie Oracle-tabellen - Afdelingen, Werknemers en Job_History - om te laten zien hoe deze wizard werkt. Toen de tabellen oorspronkelijk werden ontworpen, werd het burgerservicenummer van de werknemer gebruikt voor hun ID. Dit creëert een veiligheidsrisico bij het uitvoeren van rapporten waarin het ID-veld wordt weergegeven.

Het bovenstaande E-R-diagram voor die tabellen en de SQL-query en de resultaten hieronder worden allemaal weergegeven in verschillende IRI Workbench GUI voor FieldShield-weergaven. Zie dit artikel over:ERD-creatie in IRI Workbench. De query voegde informatie over werknemers, managers en afdelingen samen, maar geeft sofinummer-waarden (SSN) weer in de kolommen Employee SID en Manager SID. Zie dit artikel over het coderen en uitvoeren van SQL-taken in IRI Workbench.

De FieldShield Multi Table Protection Job gebruiken wizard, kunnen deze velden worden versleuteld (of anderszins geanonimiseerd), zodat de echte SSN's worden gemaskeerd in de tabellen en daaropvolgende zoekopdrachten. Referentiële integriteit blijft behouden omdat dezelfde codering wordt toegepast op alle tabellen met behulp van één regel.

Op de instellingenpagina van de wizard is ODBC geselecteerd als de lader. De drie bovengenoemde tabellen zijn geselecteerd op de pagina Gegevensextractie. De volgende pagina is de pagina Veldwijzigingsregels. Op deze pagina kunnen de regels worden ontworpen die moeten worden toegepast op alle geselecteerde geëxtraheerde tabellen.

Klikken op Maken  opent de Field Rule Matcher-pagina. Hier worden de gegevens van de matcher ingevuld. Begin met het invoeren van een matchernaam.

Nadat u op Maken  . heeft geklikt naast Naam regel , wordt de pagina Wizard Selectie nieuwe beveiligingsveldregel weergegeven. Selecteer Versleutelings- of ontsleutelingsfuncties . Deze selectie zorgt ervoor dat hetzelfde beveiligingsalgoritme van toepassing is op alle gegevens, wat de referentiële integriteit waarborgt.

Op de volgende pagina wordt het type codering geselecteerd. In dit geval, enc_fp_aes256_ascii is gebruikt. Dit formaatbehoudende coderingsalgoritme gebruikt de ASCII-tekenset om de echte gegevens te vervangen. Het wordt in deze demonstratie gebruikt, zodat de codering merkbaar is in de uitvoer. Een meer realistische keuze is normaal gesproken de alphanum  versie, die ook het daadwerkelijke uiterlijk van SSN's zou behouden (in dit geval 9 nummers).

Hoewel dit voorbeeld een ingesloten wachtwoordzin gebruikt, kan een wachtwoordbestand ook worden gebruikt voor de coderingssleutel, evenals een omgevingsvariabele.

Klikken op Voltooien  zal deze regel in de matcher invoeren. Vervolgens moet de matcher zelf worden gemaakt. Klik op Toevoegen  in de Overeenkomsten sectie. Hierdoor wordt de pagina Details veldregelovereenkomst geopend. Hier kan ofwel een patroon ofwel een dataklasse worden gebruikt. Zie het artikel Veldregels toepassen met classificatie voor meer informatie over de tweede optie.

In dit voorbeeld, Patroon  is geselecteerd en .*SID wordt ingevoerd in de details. Deze regex komt overeen met alle kolomnamen die eindigen op SID.

De matcher eindigt met de onderstaande details. De Test  knop kan worden gebruikt om de matchers te testen om er zeker van te zijn dat ze overeenkomen met alle beoogde kolommen. Meerdere matcherdetails kunnen worden ingevoerd en EN/OF-logica kan worden gebruikt om fijnmazige matchers te produceren. Er is bijvoorbeeld een extra kolom met de naam VP_SSN . Dezelfde matcher hierboven kan worden gebruikt met een andere matcher met een patroon van .*SSN   en de operator AND  om overeen te komen met deze extra kolom, maar met dezelfde regel.

Klikken op OK  hier keert u terug naar de pagina Regels waar elke regelovereenkomst wordt weergegeven. Er kunnen verschillende matchers worden gebruikt voor verschillende velden, zodat er slechts één transformatiepas nodig is, zelfs als de regels verschillende kolommen op verschillende manieren zouden maskeren.

Klikken op Volgende  geeft de pagina Data Loading Stage weer. Hier worden de uitvoertabel en opties geselecteerd. In dit voorbeeld zijn dezelfde tabellen als de invoertabellen geselecteerd. Daarnaast is de uitvoermodus gewijzigd in Maken  om de tabellen af ​​te kappen voordat ze worden geladen, zodat unieke sleutels niet worden geschonden.

Nadat u op Voltooien . heeft geklikt , wordt er een map gemaakt met meerdere scripts die worden uitgevoerd met het meegeleverde batchbestand.

Om te zien hoe de regel het veld zal transformeren en ons de kans te geven dingen met de hand te wijzigen, de SCOTT_EMPLOYEES.fcl script kan worden beoordeeld in de Workbench-editor. In de uitvoer worden zowel de EMPLOYEE_SID  en de MANAGER_SID laat het toegepaste versleutelingsalgoritme zien.

Nadat het batchbestand is uitgevoerd, toont dezelfde SQL-query dezelfde samengevoegde resultaten, maar met de Employee_SID  en Manager_SID  nu versleuteld. Bovendien blijft de referentiële integriteit behouden. De originele werknemer-manager relaties blijven behouden en de ID's voor de manager op lijn 2 en de werknemer op lijn 26 zijn hetzelfde.

Dit voorbeeld laat zien hoe één versleutelingsregel kan worden gebruikt in meerdere kolommen in meerdere tabellen met behoud van referentiële integriteit. Alle regels die tijdens de jobwizards zijn gemaakt, worden opgeslagen in een regelbibliotheek. Hierdoor kunnen ze opnieuw worden gebruikt en zelfs worden gedeeld met collega's, zodat dezelfde resultaten op dezelfde gegevens worden gegarandeerd.

Neem contact op met uw IRI-vertegenwoordiger als u vragen heeft over de regels voor gegevensmaskering van FieldShield of hulp nodig hebt bij het gebruik van een van de wizards voor gegevensdetectie of maskering.


  1. Beschermt mysql_real_escape_string() VOLLEDIG tegen SQL-injectie?

  2. Een inventarisdatabase maken in Microsoft Access

  3. Best Practice voor het maken van indexen op uw MySQL-tabellen - Rolling Index Builds

  4. Een tekenreeks in omgekeerde volgorde retourneren met SQL Server - REVERSE()