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 (­čĹü3559)

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.