Einfache Anonymisierung von Kundendaten mit MySQL / MariaDB

Wer lokal Anwendungen entwickelt oder diese auf Demo-Systemen zum Testen bereitstellt, hat oft das Problem dass sinnvolle Daten notwendig sind um eine Anwendung korrekt testen zu können. Nun ist es aber rechtlich und moralisch bedenklich echte Personendaten auf einem Preview oder Entwicklungssystem zu verwenden da solche System auch oft weit weniger abgesichert sind.

Eine Möglichkeit das Problem zumindest abzumildern ist, die Personen bezogenen Daten, zu anonymisieren.

Eine einfach Möglichkeit wäre, Felder wie Vorname und Nachname per Skript mit Zufallsdaten zu füllen. Die schönere Variante ist es jedoch, innerhalb einer Tabelle bestimmte Felder zufällig durch zu tauschen.

Geschieht dies mit Feldern wie Vorname,Nachname, E-Mail, Benutzername sind die Daten meist schon ausreichend anonym. Wer sicher gehen will anonymisiert auch noch die Adressdaten wie Straße und Ort.

Ein MySQL Statment das dies für das Feld „mail“ in der Tabelle „users“ vornimmt, sieht wie folgt aus:

Dies lässt sich mit anderen Feldern wiederholen in dem man aus „..set mail= (SELECT mail..“ zum Beispiel „..set firstname=(SELECT firstname .. “ macht. Die verwendeten Felder müssen beim Erstellen der temp. Tabelle mit angegeben worden sein.

Je nach den verwendeten Indizes und der Größe der Tabelle kann dies eine Weile dauern.

Nach einigen Durchläufen mit allen wichtigen Feldern sollten die Daten so durchmischt sein das keine Bezüge zu echten Personen mehr möglich sein dürften.

Welche Felder anonymisiert werden sollten muß jeder selbst entscheiden. Neben den offensichtlichen Feldern können auch IDs und Referenzen zu anderen Tabellen und Daten oder Mitgliedsnummern sinnvoll sein.

Kommentar verfassen