Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.
Es gibt verschiedene Gründe zum Anonymisieren von Daten. Einer ist, dass man Daten aus Datenschutzgründen verfremden möchte, deren Aufbewahrungsfrist abgelaufen ist, aber die man grundsätzlich noch behalten möchte – zum Beispiel um eine Historie der Umsatzentwicklung zu erhalten und gleichzeitig die Kundendaten nicht unnötig lange vorzuhalten. Ein anderer ist, dass man eine Datenbank zur Ansicht oder für die Weiterentwicklung an einen anderen Software-Entwickler weitergeben möchte. Auch wenn es das Instrument der Vertraulichkeitsvereinbarung gibt, kann es doch nicht schaden, diese Daten erst gar nicht aus dem Haus zugeben. In diesem Beitrag stellen wir ein Add-In vor, dass Access eine Funktion zum Anonymisieren von Daten hinzufügt. Das Grundgerüst dazu haben wir bereits im Beitrag „Daten anonymisieren“ (www.access-im-unternehmen.de/1112) vorgestellt. Im vorliegenden Beitrag erweitern und optimieren wir diese Lösung und bauen sie so um, dass sie auch als Add-In auf die Inhalte der aktuellen Datenbank angewendet werden kann.
Im Beitrag Daten anonymisieren (www.access-im-unternehmen.de/1112) haben wir erstmals ein Beispiel dafür geliefert, wie man die Daten in Access-Tabellen anonymisieren kann. Hier haben wir nur zwei verschiedene Anonymisierungsarten genutzt. Die eine hat eine zufällige Zeichenfolge generiert, die eine bestimmte Mindest- und Höchstanzahl zufälliger Zeichen enthält. Die zweite hat die Anzahl der Zeichen beibehalten und diese lediglich verfremdet.
In der Lösung aus dem vorliegenden Beitrag gibt es verschiedene Neuerungen:
- Es gibt drei neue Anonymisiserungsarten, die bereits eingebaut sind, und zwei für zwei weitere beschreiben wir den Ablauf, um diese selbst hinzuzufügen.
- Die Datenbank kann nun als Access-Add-In direkt in der Anwendung geöffnet werden, deren Daten anonymisiert werden sollen.
- Dafür werden direkt die Daten der aktuell geöffneten Datenbank anonymisiert.
Dies bedeutet, dass Sie eine Kopie der Anwendung anlegen müssen, deren Daten Sie dann anonymisieren und beispielsweise für die Weitergabe an einen externen Entwickler nutzen können.
Achtung: SQL-Server-Datenbank
Besondere Vorsicht ist bei Verwendung des SQL Servers geboten. Hier reicht es nicht aus, einfach eine Kopie des Frontends zu machen, von dem aus wir das Access-Add-In zum Anonymisieren öffnen. Eine Kopie des Frontends verweist nämlich ohne weitere Änderungen auf die gleiche SQL Server-Datenbank wie das Original – zumindest, wenn wir keine weiteren Änderungen vornehmen. In diesem Fall muss also eine Kopie der SQL Server-Datenbank erstellt werden und das Frontend, von dem aus die Daten anonymisiert werden sollen, muss die Tabellen der Kopie einbinden.
Neue Anonymisierungsarten
Wir haben drei neue Anonymisierungsarten hinzugefügt:
- Die erste kann wie die bereits vorhandenen Methoden auf Textfelder angewendet werden. Sie trägt einfach einen immer gleichen Ausdruck ein und kombiniert diesen mit dem Primärschlüsselwert. Daraus entstehen Werte wie Artikel1, Artikel2, Artikel3 und so weiter, die gegebenenfalls eine bessere Grundlage zum Nachvollziehen von Zusammenhängen liefern.
- Die zweite neue Möglichkeit ist das Anonymisieren von Zahlenwerten. Hier bieten wir die Möglichkeit, für die neuen Werte eines Zahlenfeldes einen kleinsten und einen größten Wert sowie die Anzahl der Dezimalstellen festzulegen.
- Die dritte Variante ist für Datumsfelder gedacht. Auch hier können wir einen Bereich für die einzufügenden Datumsangaben festlegen.
amvDatenAnonymisieren installieren
Die Lösung finden Sie im Download unter dem Namen amvDatenAnonymisieren.accda. Die Dateiendung deutet bereits darauf hin, dass es sich um ein Access-Add-In handelt.
Dieses installieren wir, indem wir eine beliebige Access-Datenbank öffnen und den Ribbonbefehl Datenbanktools|Add-Ins|Add-Ins|Add-In-Manager aufrufen.
Hier klicken wir auf Neues hinzufügen… und wählen im folgenden Dateidialog die .accda-Datei aus. Danach schließen wir den Add-In-Manager. Beim erneuten Aufklappen des Add-In-Menüs sehen wir den neuen Eintrag amvDatenAnonymisieren und können das Add-In durch Anklicken öffnen.
Daten anonymisieren in der Praxis
Danach erscheint die Benutzeroberfläche des Add-Ins (siehe Bild 1). Hier sehen wir zunächst das Auswahlfeld Konfiguration.

Bild 1: Der Daten-Anonymisierer nach dem ersten Start
Klicken wir es an, sehen wir einen weiteren Eintrag namens Neue Konfiguration (siehe Bild 2). Wählen wir diesen aus, erscheint eine Inputbox, der wir den Namen der zu erstellenden Konfiguration übergeben können.

Bild 2: Anlegen einer neuen Konfiguration
Für unsere Beispieldatenbank Südsturm.accda geben wir hier beispielsweise den Namen Südsturm ein. So können wir später leicht erkennen, welche Konfiguration wir für welche Datenbank angelegt haben.
Nach dem Anlegen wird die neue Konfiguration automatisch selektiert und auch die Schaltfläche Tabellen und Felder einlesen ist nun aktiviert (siehe Bild 3).

Bild 3: Die neue Konfiguration wird nun aktiviert.
Wenn wir diese betätigen, liest das Add-In alle Tabellen der aktuellen Datenbank mit Ausnahme derer, die mit MSys… beginnen ein. Zuvor erscheint der Hinweis, dass alle bestehenden Daten für diese Konfiguration gelöscht und überschrieben werden.
Wir sehen nun alle Tabellen der aktuellen Datenbank. Klappen wir einen der Einträge auf, sehen wir die enthaltenen Felder (siehe Bild 4).

Bild 4: Die Tabellen und Felder der aktuellen Anwendung
Hier können wir nun festlegen, welche Feldinhalte auf welche Art anonymisiert werden sollen.
Wenn wir das Feld Artikelname anonymisieren wollen, wählen wir beispielsweise den Eintrag Ausdruck plus PK-ID aus (siehe Bild 5).

Bild 5: Auswahl einer der Anonymisierungsarten
Danach wird für diesen Eintrag das Feld Wert1 mit dem Namen des Feldes vorbelegt. Außerdem sehen wir im Infobereich unten im Formular Hinweise zu den Bedeutungen der Felder Wert1, Wert2 und Wert3 (siehe Bild 6).

Bild 6: Informationen zur Anonymisierung
Außerdem ändert sich auf der Ebene der Tabelle die Zahl in Klammern in der ersten Spalte. Diese gibt an, wie viele Felder mit Anonymisierungen versehen wurden. Auf diese Weise können wir auch bei zugeklappten Tabellen-Einträgen schnell erkennen, hinter welchem Eintrag sich Anonymisierungen befinden.
Anonymisierung durchführen
Nun wird auch die Schaltfläche Anonymisieren aktiviert. Wenn wir diese betätigen, erscheint eine Rückfrage, ob die Anonymisierung durchgeführt werden soll. Bestätigen wir dies, führt das Add-In den Auftrag aus und trägt für alle Datensätze der Tabelle tblArtikel im Feld Artikel die entsprechenden Werte ein.
Anschließend können wir die Tabelle mit den anonymisierten Daten öffnen und sehen das Ergebnis aus Bild 7. Das Feld wurde mit den Werten Artikelname1, Artikelname2 und so weiter gefüllt.

Bild 7: Tabelle mit anonymisierten Daten im Feld Artikel
Anonymisieren von Zahlenfeldern
Als Nächstes wollen wir die Werte eines Zahlenfeldes anonymisieren. Hier bietet sich das Feld Einzelpreis der Tabelle tblArtikel an (siehe Bild 8).

Bild 8: Anonymisieren eines Zahlenfeldes
Dazu wählen wir für dieses Feld den Eintrag Zufallszahl aus. Die Werte sind wie folgt zu füllen:
Wert1: Kleinster Wert
Wert2: Größter Wert
Wert3: Nachkommastellen
Die entsprechenden Hinweise werden wieder im unteren Bereich des Formulars eingeblendet.
Hier legen wir fest, dass wir Preise im Bereich von 5 bis 20 EUR mit einer Nachkommastelle eintragen wollen.
Wenn wir nun auf die Schaltfläche Anonymisieren klicken, wird das Feld Artikelname nochmals anonymisiert, allerdings mit den gleichen Werten wie zuvor. Wenn wir das nicht wollen, weil die Tabelle beispielsweise sehr viele Datensätze enthält und der Vorgang lange dauert, können wir den Haken vorn für die Zeile mit dem Feld Artikelname entfernen.
Anschließend starten wir die Anonymisierung und finden das Ergebnis aus Bild 9 vor.

Bild 9: Tabelle mit anonymisierten Preisen
Datum anonymisieren
Schließlich wollen wir noch ein Datumsfeld anonymisieren. Dazu bietet sich die Tabelle tblBestellungen an.
Hier wählen wir für das Feld Bestelldatum den Eintrag Zufallsdatum aus und legen für die beiden Felder Wert1 und Wert2 das kleinste und das größte Datum fest (siehe Bild 10).

Bild 10: Anonymisieren von Datumsangaben
Klicken wir nun auf Anonymisieren, wird das Feld Bestelldatum mit zufälligen Datumsangaben gefüllt.
Beenden des Add-Ins
Wenn wir das Add-In nun schließen, bleibt die Konfiguration im Add-In gespeichert. Wir können es also später wieder aufrufen und die gespeicherte Konfiguration im Auswahlfeld oben selektieren.
Dies lädt die bereits angelegte Konfiguration mit allen Tabellen, Feldern und Anonymisierungsparametern wieder in die Liste (siehe Bild 11).

Bild 11: Wiederherstellen eines Konfiguration
Erweitern des Add-Ins um eigene Anonymisierungsfunktionen
Wir haben nur fünf Basisfunktionen für die Anonymisierung hinterlegt. Es gibt sicher Anwendungsfälle, in denen andere Funktionen erforderlich sind. Wie die Regeln definiert sind und wie Sie neue Funktionen anlegen können, schauen wir uns in den folgenden Abschnitten an. Dabei fügen wir auch gleich noch weitere Funktionen hinzu.
Zum Hinzufügen einer Anonymisierungsfunktion sind folgende Schritte erforderlich:
- Der erste ist das Anlegen eines neuen Eintrags in der Tabelle tblErsetzenMit.
- Der zweite ist das Hinzufügen der Anonymisierungsfunktion im Modul mdlAnonymisieren.
- Der dritte ist das Hinzufügen des Aufrufs der Anonymisierungsfunktion in der Prozedur cmdAnonymisieren_Click im Modul Form_frmDatenAnonymisieren.
Wichtig: Immer direkt im Add-In programmieren
Wenn wir Änderungen an einem Add-In vornehmen wollen, müssen wir dazu immer direkt die .accda-Datenbank öffnen. Was oft geschieht und verführerisch ist, sind VBA-Fehler beim produktiven Einsatz des Add-Ins, die man direkt an Ort und Stelle repariert. Bei der nächsten Nutzung wundert man sich dann, dass der Fehler wieder auftaucht und die Änderungen zur Behebung des Fehlers nicht gespeichert wurden.
Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...
Testzugang
eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel
diesen und alle anderen Artikel mit dem Jahresabo
