Readdy Write  
0,00 €
Your View Money
Views: Count
Self 20% 0
Your Content 60% 0

Users by Links 0
u1*(Content+Views) 10% 0
Follow-Follower 0
s2*(Income) 5% 0

Count
Followers 0
Login Register as User

Anonymisieren und Pseudonymisieren von Daten mit Microsoft Access Office

04.12.2019 (👁16751)

Anonymisieren und Pseudonymisieren von Daten

In Microsoft Access, Random, Anonym, Pseudonym, einfache Umwandlung in functions. ID Nummer ohne Hash in vba

In der folgenden Demo-Datenbank werden wichtige Daten anonymisiert und pseudonymisiert.

Das heißt, für wichtige Nummern werden nicht rückführbare andere Zahlen eingefügt,

Und für Texte werden Pseudonyme vergeben

Hier eine anonymisierte und pseudonymisiert Tabelle

Anwenden der Random -Funktion in einer Tabelle oder Abfrage

Mit einer einmaligen Random-Nummer werden die Nummern verändert, sodass diese nicht zurückverfolgt werden können.

Diese Funktion ist möglich, sobald in der vba Code-Seite die public function wie folgt eingefügt wurde.

Über ein Formular kann die Random-Nummer manuell erzeugt werden und auf Veränderung geprüft werden

Die Änderung der Wichtigen Nummern wird durch ein Update / Aktualisierungsabfrage ausgeführt

Dabei werden die kritischen Nummern, welche nicht zurückgeführt werden können sollten, durch einen Anonymisierungsfunktion umgewandelt.

Anschliessend können in einer Abfrage die Zahlen einheitlich verschlüsselt werden

Pseudonymisierung

Bei der Pseudonymisierung werden jedem kritischen Text Pseudonyme vergeben.

Also wird anstatt Maier, Müller Huber entweder Name 123, Name 234, Name 456 oder Hase, Maus, Elefant vergeben.

Update in SQL

UPDATE tblPersonal_Data

SET tblPersonal_Data.Firstname = "Firstname " & [PersonalNumber]

, tblPersonal_Data.LastName = "LastName " & [PersonalNumber]

, tblPersonal_Data.BirthDay = Date(), tblPersonal_Data.ZipCode = Left([PersonalNumber],5)

, tblPersonal_Data.City = "City " & [PersonalNumber]

, tblPersonal_Data.Email = "Email@" & [PersonalNumber] & ".com";

Vba Code zum Formular Random Nummer erstellen, init

Vba Code zum Button

Option Compare Database

Option Explicit

Private Sub BtnRandom_Click()

    '--------------< BtnRandom_Click()>-------------

    'create public Random Number

    create_Public_Random_Number

    

    'anzeigen

    tbxRandom.Value = public_Random_Zahl

    '--------------</ BtnRandom_Click()>-------------

End Sub

Mit der Randomize Klasse in vba Office und der Rnd(123) Funktion können dann in vba neue Zufallszahlen erstellt werden

Der Rnd() Befehl erstellt eine double-Zahl von 0-1.

Mit der Multiplikation einer Basis-Zahl entsteht dann der gültige Zahlenbereich von 0 bis 999.999.999

Dann wird mit einer vba Funktion eine Random Zahl erzeugt, welche einen Offset nach einer zufälligen Zahl zwischen 0 und 999.999.99 erzeugt

Public Function create_Public_Random_Number()

    '--------------< create_Public_Random_Number() >--------------

    'Init Zufallszahlen

    Randomize

    

    'bilde Zufallszahl

    Dim lngRandom As Long

    lngRandom = Rnd(10000) * 999999  '*eine Zahl von 0 bis 6 stellen

    

    'Public zuweisen

    public_Random_Zahl = lngRandom

    '--------------</ create_Public_Random_Number() >--------------

End Function

Anonymisieren von Zahlen mit Referenz-Funktionen

Mit der folgenden public function in Microsoft Access oder Microsoft Excel kann man Nummern anonymisieren ähnlich wie ein Hash bilden.

Der einzige Unterschied ist, dass dabei zufällige Nummern erstellt werden, welche für den Rechenvorgang im Offset gleichbleiben.

Bei Hash Funktionen entstehen immer auch Buchstaben, welche anschließend nicht in Daten-Tabellen als Zahl weiterverwendet werden können.

Eine zufällige Nummer wäre hier auch nicht sinnvoll, wenn externe Import oder Export Funktionen auf Doubletten oder auf Index-Verweise berechnen oder referenzieren müssen.

Option Compare Database

Option Explicit

Public public_Random_Zahl As Long

Public Function Anonymize_Number(ByVal sInput As String)

    '--------------< Anonymize_Number() >--------------

    'Zugriff ueber Excel oder Access Tabelle als Funktion =Anonymize_Number()

    'veraendere eine IDNummer mit einem Random-Shift

    

    '< check >

    If public_Random_Zahl = 0 Then create_Public_Random_Number

    If sInput = "" Then Exit Function

    If Len(sInput) < 3 Then Exit Function

    '</ check >

    

    '< convert >

    'convert string to number (Excel numbers as string, from SAP)

    Dim long_Input As Long

    long_Input = CLng(sInput)

    '</ convert >

    Dim new_Number As Long

    new_Number = long_Input + public_Random_Zahl

    '< return >

    Anonymize_Number = new_Number

    '</ return >

    '--------------</ Anonymize_Number() >--------------

End Function

Aufgabe:

Für wichtigere Aufgaben mit höherem Level kann die Umwandlungs-Funktion natürlich verbessert und ausgefeilt werden.

Fazit

Natürlich ist unter viel Aufwand bei einer einfachen Änderung die Rekonstruktion mit kriminellen Mitteln und viel Aufwand möglich.

Allerdings ist eine Interne Änderung in dieser Weise für interne Aufgaben möglich.

Die Funktion kann natürlich komplexer aufgebaut werden, und die Daten sind auch nach wie vor nicht für den öffentlichen Gebrauch zu verwenden.