Ich wünschte, ich könnte dir 100 Punkte geben, nur weil du darüber nachgedacht hast! Ich habe gesehen, dass dieses Thema so oft übersehen wurde, dass es nicht wahr ist - so gut gemacht. Soweit ich weiß, möchten Sie die Daten in den Feldern selbst verschlüsseln, und obwohl ich verstehe, was Sie erreichen möchten, ist dies möglicherweise nicht unbedingt erforderlich - obwohl dies von Fall zu Fall zu prüfen ist.
Bei den meisten Datenschutzgesetzen geht es um die Möglichkeit, eine Person korrekt mit Daten zu verknüpfen, z. B. mit einem Geburtsdatum oder einer Telefonnummer. Sie können die gesetzlichen Anforderungen erfüllen, indem Sie sicherstellen, dass Ihre Daten, wenn Sie sie aus der Produktion in UAT verschieben, durcheinander gebracht werden, sodass sie nicht einfach der ursprünglichen Person zugeordnet werden können - insbesondere, wenn Sie Vor- und Nachnamen durcheinander bringen.
Hiermit wird jedoch nicht das Problem der Kontaktdaten behoben. Sie können die gesetzlichen Anforderungen erfüllen, indem Sie die Daten durcheinander bringen, aber die Telefonnummern sind immer noch echt, die E-Mails immer noch echt usw. Sie sind einfach nicht der richtigen Person zugeordnet. Zu diesem Zweck empfehle ich, wenn möglich, diese Daten zu löschen, bevor sie an UAT übergeben werden. Red Gate führt eine Software namens Data Generator durch , die zufällige Testdaten für Sie erstellen kann, damit Sie die Felder erneut mit Daten füllen können, gegen die getestet werden kann.
Datenverschlüsselung: Es gibt viele Anwendungen, die dies für Sie tun, und ehrlich gesagt, möchten Sie das Rad nicht neu erfinden. Das Produkt, das wir in unserem Unternehmen verwenden, heißt Data Masker und wird von einem Unternehmen namens Net2000 angeboten. Die Lizenz ist ziemlich billig, sie arbeitet extrem schnell und Sie müssen sich keine Sorgen machen, dass Sie alle Einschränkungen deaktivieren müssen, bevor Sie die Datenbank verschlüsseln.
Sie können natürlich Ihre eigene Lösung entwickeln, wenn Sie nichts finden, das Ihren Anforderungen entspricht. Wenn Sie sich dazu entschließen, würde ich die Verwendung von CLR-Prozeduren dringend empfehlen, da diese viel flexibler sind als reines TSQL (ganz zu schweigen von Ihnen) Ich kann TSQL nicht verwenden (siehe hier ).
Nachdem Sie eine Anwendung ausgewählt haben, die dies für Sie ausführt, müssen Sie als Nächstes entscheiden, was Sie tatsächlich verschlüsseln möchten / müssen. Ehrlich gesagt, Ihre beste Ressource dafür ist Ihr juristisches Team und / oder die Wirtschaftsprüfer. Ich weiß, dass wir manchmal nicht gerne mit ihnen arbeiten, aber sie sind viel netter für Sie, wenn Sie sich ihnen nähern und ihnen die Frage stellen, als wenn Sie versuchen, es selbst zu tun und es falsch zu verstehen. Es ist absolut nichts Falsches, wenn Sie um Hilfe bitten - vor allem, wenn es so wichtig ist.
Ich hoffe das hilft dir und wünsche dir viel Glück bei deiner Suche ... ;-)
Mr. Brownstone traf den Nagel direkt auf den Kopf. Um Ihnen ein bisschen zu helfen, hier ist meine "Garble" -Funktion, die zum Verschleiern von Zeichenfolgen verwendet wird (lustige Ergebnisse mit Namen!). Wenn Sie eine Zeichenfolge übergeben, wird eine verstümmelte Zeichenfolge zurückgegeben. Schließen Sie es in Aktualisierungsanweisungen für Zeichenfolgenspalten ein. Ändern Sie die Datenlänge nach Belieben.
quelle
Ich musste dies für die Verkaufsdaten meiner Kunden tun. Für Namen ging ich zur Volkszählung und lud alle Vor- und Nachnamen herunter, durchlief eine Schleife, um jeden Vor- und Nachnamen zu verknüpfen, fügte Sexcode hinzu und lud ihn in Großbuchstaben in eine Tabelle. Ich hatte dann einen Tisch mit ungefähr 400 Millionen eindeutigen Namen. Ich habe Großbuchstaben verwendet, da unsere aktuellen Daten nicht in Großbuchstaben angegeben wurden, damit ich leichter erkennen kann, welche Daten gelöscht wurden.
Als ich meine Benutzerdaten gelöscht habe, habe ich die Namen ausgetauscht, zum Geburtstag habe ich alle zum 1. Januar des Jahres, in dem sie tatsächlich geboren wurden, versetzt und Telefonnummern mit ihrer Postleitzahl aktualisiert (meine Daten waren nur in den USA). Aus E-Mail-Adressen wurden die Anfangsbuchstaben plus der Nachname @ mycompany.co. Die Postanschrift hat mich am meisten gekränkt, aber ich habe die Stadt, den Bundesstaat und die Postleitzahl behalten, weil ich glaube, dass sie kein Problem darstellen, wenn die Adresse geändert wird. Ich hatte einen Kollegen, der ein Programm hatte, das verstümmelte Buchstaben erzeugte und die Adresszeile damit aktualisierte.
Überall, wo ich Daten dupliziert hatte, dem Hauptbenutzer aber immer noch eine FK (schlechtes Design ja, aber nicht meins), habe ich diese Daten ebenfalls aktualisiert, sodass der Name für Benutzer x in der Datenbank konsistent war.
Insgesamt waren meine Daten noch gut lesbar, obwohl die Adresse keinen Sinn ergab. Ich brauchte ein paar Tage, um all das zum Laufen zu bringen, aber sobald es fertig war und ein SQL Agent-Job erstellt wurde, konnte ich die Daten in nur 15 Minuten bereinigen.
quelle
Wie wäre es mit der Verwendung der HASHBYTES-Funktion (in SQL 2008+), um ein einzelnes Feld zu verschleiern? Sie können Ihren Algorithmus auswählen (MD5 ist wahrscheinlich ausreichend), sofern Sie Ihre Daten salzen. Anstatt also nur
SELECT HASHBYTES('SHA2_256', <LAST NAME FIELD>)
sicherzugehen, dass Sie dies tunSELECT HASHBYTES('SHA2_256', <LAST NAME FIELD> + '<my salt string>')
, haben Sie jetzt einen Hash, der nicht einfach brutal erzwungen werden kann.Es ist eine tatsächliche Funktion, die unterstützt, wiederholt und wahrscheinlich viel schneller ist. Je nachdem, wie viel Sie wirklich sichern müssen, anstatt nur zu verschleiern, können Sie auch einen schwächeren, schnelleren Hash verwenden.
quelle
MD2 | MD4 | MD5 | SHA | SHA1 | SHA2_256 | SHA2_512
Für jeden ist etwas dabei !! (Einschließlich, ja, diejenigen, die Sie nicht verwenden sollten). Nehmen wir also an, wir verwenden SHA2_512 ... gibt es sonst noch Probleme mit diesem Ansatz?Schauen Sie sich das PowerShell-Modul von dbatools an, um eine kostenlose Option für die statische Datenmaskierung zu erhalten, die von Chrissy Lemaire (@ chrissy-lemaire) und ihrem Team geschrieben wurde. Alle ihre Tools sind großartig, daher bin ich mir sicher, dass dies einen Blick wert ist.
Die beiden Befehle, die in dbatools nachgeschlagen werden müssen, lauten: New-DbaDbMaskingConfig Invoke-DbaDbDataMasking
Schauen Sie sich den Blog-Beitrag an, der dies ankündigt: Automatisierte Datenmaskierung
quelle