Daten anonymisieren per Access-Add-In

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.

Der Daten-Anonymisierer nach dem ersten Start

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.

Anlegen einer neuen Konfiguration

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).

Die neue Konfiguration wird nun aktiviert.

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).

Die Tabellen und Felder der aktuellen Anwendung

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).

Auswahl einer der Anonymisierungsarten

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).

Informationen zur Anonymisierung

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.

Tabelle mit anonymisierten Daten im Feld Artikel

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).

Anonymisieren eines Zahlenfeldes

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.

Tabelle mit anonymisierten Preisen

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).

Anonymisieren von Datumsangaben

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).

Wiederherstellen eines Konfiguration

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

Schreibe einen Kommentar