HINTERGRUND
Um sensitive Daten für Drittpersonen unkenntlich zu machen, sind diese bei Bedarf zu anonymisieren. Dieser Artikel beschreibt das dazu erforderliche Vorgehen.
VORGEHEN
Um Daten einer Kunden-DB zu anonymisieren kann eine Datenbank-Funktion verwendet werden. Folgender SQL-Code generiert dazu vorgängig eine benötigte View und die gewünschte Funktion namens „Shuffle“.
Achtung: Führen Sie dies nicht auf den Live-Daten sondern auf einer Test-Datenbank aus!
Gehen Sie wie folgt vor, um eine Kopie der Live-Datenbank zu erstellen:
- Ein Backup der Datenbank erstellen.
- Leere Datenbank über das verwendete TimeSafe-Produkt erstellen, dafür beim Starten der Anwendung die Ctrl-Taste gedrückt halten und „neue Datenbank erstellen“ auswählen. Alternativ kann auch eine neue Datenbank via SQL Server Management Studio erstellt werden.
- Das in Schritt 1 erstellte Backup in die in Schritt 2 erstellte Datenbank übernehmen. Die Anleitung dazu finden Sie unter folgenden Links: Für die Leistungserfassung Punkt 7 bis Punkt 10 und für die Zeiterfassung „ Auf dem neuen Server“ Punkt 4 bis Punkt 7
- Um Daten einer Kunden-DB zu anonymisieren kann eine Datenbank-Funktion verwendet werden. Folgender SQL-Code generiert dazu vorgängig eine benötigte View und die gewünschte Funktion namens „Shuffle“.
- Führen Sie auf der neu erstellten Datenbank die folgende Anweisung aus:
CREATE VIEW Random
AS SELECT RAND() AS RAND
GO
CREATE FUNCTION Shuffle(@string AS nvarchar(MAX), @LENGTH AS INT)
RETURNS VARCHAR(MAX)
BEGIN
DECLARE @RESULT NVARCHAR(MAX)
DECLARE @counter INT
SET @RESULT = ''
SET @counter = 0
WHILE @counter < @LENGTH
BEGIN
SELECT @RESULT = @RESULT + SUBSTRING(@string, (SELECT CONVERT(INT, (RAND * LEN(@string) + 1)) FROM Random), 1)
SET @counter = @counter + 1
END
SELECT @RESULT = UPPER(LEFT(@RESULT,1)) + SUBSTRING(@RESULT,2,LEN(@RESULT))
RETURN @RESULT
END
GO
BEISPIELE
Folgender SQL-Code anonymisiert z.B. die Bezeichnung der Organisationen:
UPDATE dbo.tOrganizations
SET strDesignation = dbo.Shuffle(strDesignation, LEN(strDesignation))
Oder die Vor- und Nachnamen der Kontakte:UPDATE dbo.tContacts
SET strFirstName = dbo.Shuffle(strFirstName, LEN(strFirstName))
UPDATE dbo.tContacts
SET strLastName = dbo.Shuffle(strLastName, LEN(strLastName))
VIEW UND FUNKTION WIEDER LÖSCHEN
DROP VIEW Random
GO
DROP FUNCTION Shuffle
GO
5. Führen Sie die unter „BEISPIELE“ erwähnten SQL-Codes auf der neu erstellen Datenbank aus.6. Erstellen Sie ein Backup dieser soeben anonymisierten Datenbank