DataVirt
Virtuelle, maskierte Datenbanken über der Produktion: ein Abnahmetest oder eine Demonstration in zwei Klicks.
DataVirt wird auf Ihrem Gerät installiert (Windows, Linux und Android) und öffnet sich mit Ihrem Prophetix-Konto, demselben wie bei den Web-Anwendungen.
DataVirt verbindet sich mit Ihren Datenbanken SQL Server, PostgreSQL, MariaDB, MySQL und Db2. Es liest deren Schemas, zeichnet deren Diagramme und erkennt die Spalten, die personenbezogene Daten enthalten: Namen, E-Mail-Adressen, Telefonnummern, IBANs, Karten- oder Sozialversicherungsnummern, Geburtsdaten, Gehälter. Für jede Spalte wählen Sie, wie sie maskiert wird — ein plausibler Name, eine fiktive E-Mail-Adresse, ein verschobenes Datum, ein verrauschter Betrag —, und die Maske bleibt von einer Tabelle zur nächsten dieselbe, sodass die Joins erhalten bleiben.
Eine virtuelle Datenbank wird in wenigen Sekunden erstellt, ohne die Daten zu kopieren: Jede Tabelle darin ist eine Sicht auf die Produktion, transparent oder maskiert, und alles, was die Anwendung schreibt, bleibt in der virtuellen Datenbank. Die Produktion wird nie angetastet. Man führt darauf ein Bereitstellungsskript aus, um die Änderungen an Struktur und Daten zu prüfen, setzt sie zurück, wirft sie weg — oder sie löscht sich zur festgelegten Zeit von selbst.
Ein Dienst, unter Windows, unter Linux oder in einem Container, behält die Verbindungen bei Ihnen. Seine API steuert alles aus einer Pipeline (GitHub, GitLab, Azure DevOps) oder einem Ticketsystem (Jira, ServiceNow); die Oberfläche öffnet sich im Browser, auf dem Windows- und Linux-Desktop und auf Android.
DataVirt ist in Vorbereitung. Sie wird mit ihrer Veröffentlichung in den Katalog des Prophetix-Abonnements aufgenommen.
Alle Funktionen von DataVirt
65 Funktionen in 10 Bereichen
Datenquellen
- Verbindet sich mit Ihren Datenbanken SQL Server, PostgreSQL, MariaDB, MySQL und Db2.
- Deklariert eine Produktionsdatenbank, vorzugsweise mit einem Konto mit Leseberechtigung, und testet die Verbindung.
- Liest das Schema: Tabellen, Spalten, Typen, Schlüssel, Indizes und Datenmengen.
- Zeichnet das Schemadiagramm, exportierbar als SVG oder Mermaid.
- Erkennt Spalten mit personenbezogenen Daten anhand ihrer Namen und einer Stichprobe von Werten: Namen, E-Mail-Adressen, Telefonnummern, IBANs, Karten, Sozialversicherungsnummern, IP-Adressen, Geburtsdaten, Gehälter.
- Kennzeichnet jeden Vorschlag als „zu bestätigen“, bis eine Person ihn validiert.
Datenmaskierung
- Wählt pro Spalte eine Maskierungsstrategie aus sechzehn: leerer oder fester Wert, Hash, Nachname, Vorname, vollständiger Name, E-Mail, Telefon, Adresse, Ort, IBAN, Karte, teilweise, verschobenes Datum, Rauschen, Text.
- Macht die Maskierung deterministisch: Derselbe Wert ergibt dieselbe Maske, sodass Joins, Gruppierungen und Eindeutigkeit erhalten bleiben.
- Vergleicht die Original- und die maskierten Werte in einer Vorschau, um die Regeln einzustellen, bevor die Datenbank weitergegeben wird.
- Behält Typ und Länge jeder Spalte bei und lässt leere Werte leer.
- Gibt jeder Datenbank ihr eigenes Salt, sodass sich die Masken einer Datenbank nicht mit denen einer anderen überschneiden.
Pseudonymisierung, Anonymisierung und Ersetzung
- Pseudonymisiert Nummern kollisionsfrei, sodass ein Primärschlüssel eindeutig bleibt.
- Lässt das Pseudonym den Fremdschlüsseln folgen, die auf die Spalte verweisen, damit die Joins erhalten bleiben.
- Bildet eine E-Mail-Adresse aus dem pseudonymisierten Vor- und Nachnamen derselben Zeile.
- Vergibt in allen Datenbanken desselben Bereichs dieselben Pseudonyme, um einen Kunden von einer Abnahmetest-Umgebung zur nächsten zu verfolgen.
- Generalisiert Daten, Zahlen und Texte (Jahr, Spanne, erste Zeichen) als Hilfe bei der Anonymisierung.
- Misst das Re-Identifizierungsrisiko mit k-Anonymität, ohne und dann mit den Regeln, und sagt, was zu generalisieren ist.
- Ersetzt durch Werte aus Ihren Listen, Zuordnungstabellen oder erzeugten Formaten.
- Wendet mit einem Klick ein Profil zur Pseudonymisierung, Anonymisierung oder Ersetzung an und prüft die Konsistenz der Regeln, bevor sie gespeichert werden.
- Ermittelt für Administratoren das Pseudonym eines Wertes oder den Originalwert eines Pseudonyms, mit einem Eintrag im Protokoll, der den Originalwert nicht enthält.
Virtuelle Datenbanken
- Erstellt in wenigen Sekunden eine virtuelle Datenbank, ohne die Daten zu kopieren: Jede Tabelle darin ist eine Sicht auf die Produktion.
- Wählt den Modus: transparent, maskiert oder maskiert mit Vorschau der Originale und der Masken.
- Behält die Schreibvorgänge der Anwendung in der virtuellen Datenbank; in die Produktion wird nie geschrieben.
- Gibt der Anwendung ein eigenes Konto für die Datenbank, das im maskierten Modus die Originale nicht liest.
- Stellt jede Datenbank an einem Port des Rechners des Agenten bereit, wie einen echten Server: Die Anwendung behält ihren gewohnten Treiber.
- Wählt den Port einer Datenbank, auch den der Datenbank-Engine, damit der Agent als Sprungrechner dienen kann.
- Versieht eine Datenbank mit einem Ablaufdatum: Sie löscht sich zur festgelegten Zeit von selbst.
- Verlängert, setzt zurück und löscht eine Datenbank und ändert ihren Modus.
- Materialisiert Tabellen zu echten Kopien, um sie zu beschreiben oder in ihrer Struktur zu ändern.
- Listet die schreibgeschützten Tabellen ohne Primärschlüssel auf.
Bereitstellungsskripte
- Führt ein Bereitstellungsskript auf einer virtuellen Datenbank aus, um Änderungen an Struktur und Daten zu prüfen.
- Zerlegt das Skript je nach Engine und führt es Anweisung für Anweisung aus.
- Liefert einen Bericht: Anweisungen, materialisierte Tabellen, Strukturunterschiede zur Quelle und Schreibvorgänge Tabelle für Tabelle.
- Lässt die Pipeline mit einer 422-Antwort fehlschlagen, wenn eine Anweisung fehlschlägt.
Auswirkungsanalyse
- Misst einen Satz lesender Abfragen vor und nach einer Änderung: hinzugefügter oder entfernter Index, entfernte, umbenannte oder neu typisierte Spalte, Datenmigration.
- Liefert pro Abfrage ein Urteil: identisch, schneller, Plan geändert, langsamer, Ergebnis geändert oder defekt.
- Zeigt die hinzugekommenen und verschwundenen Zeilen, wenn sich ein Ergebnis ändert.
- Listet die Sichten, Funktionen, Prozeduren, Trigger, Schlüssel und Indizes auf, die von dem abhängen, was das Skript berührt.
- Simuliert eine Änderung und setzt die Datenbank dann auf null zurück.
- Speichert den Abfragesatz an der Quelle, für alle ihre Datenbanken, und aktualisiert ihn aus Ihrem Repository.
- Liefert den Bericht im JUnit-Format für Pipelines, mit einem Fehlschlag bei einer Regression.
Steuerung über die Website
- Installiert einen Agenten bei Ihnen, auf einer Windows-, Ubuntu-, Debian- oder Linux-VM mit systemd oder in einem Container: Er erreicht Ihre Datenbanken und die Website über ausgehendes HTTPS.
- Registriert den Agenten mit einem bei der Installation angezeigten Code oder mit einem Token für eine automatisierte Installation.
- Steuert von datavirt.prophetix.com aus Ihre Quellen, Hosts, Maskierungen und virtuellen Datenbanken, mit denselben Bildschirmen wie die lokale Oberfläche des Agenten.
- Behält die Passwörter Ihrer Datenbanken auf dem Agenten: Die Website hält keines davon.
- Vergibt Lese-, Operator- oder Administratorrechte für einen ganzen Agenten oder Quelle für Quelle, per E-Mail.
- Widerruft einen Agenten über die Website, was seinen Kanal sofort kappt.
- Führt ein Protokoll der Vorgänge und behält die lokale Oberfläche des Agenten als Notlösung.
Integrationen
- Stellt eine dokumentierte REST-API bereit, die Datenbanken aus einer Pipeline erstellt, zurücksetzt und löscht.
- Liefert Beispiele für GitHub Actions, GitLab CI und Azure DevOps.
- Erstellt, setzt zurück oder löscht die Umgebung eines Tickets aus einem Ticketsystem wie Jira oder ServiceNow.
- Sendet signierte Webhooks, um Ereignisse zu verfolgen.
- Schützt den Zugriff mit Zugriffsschlüsseln mit drei Rollen oder mit der Anmeldung an Ihrem Prophetix-Konto.
Auf Ihren Geräten
- Web: die Website datavirt.prophetix.com und die lokale Oberfläche des Agenten, in einem Browser.
- Windows und Linux: eine Desktopanwendung, die einen DataVirt-Dienst steuert.
- Android: eine Anwendung, die einen DataVirt-Dienst steuert, um mit zwei Gesten eine Abnahmetest-Umgebung zu erstellen, zu verlängern, zurückzusetzen, zu löschen, eine Vorschau anzusehen und das Protokoll zu lesen.
- Der Dienst selbst läuft unter Windows, unter Linux (systemd) oder in einem Container.
Wissenswertes
- SQL Server und Db2: Das SQL wird erzeugt und gegengelesen, wurde aber nie auf echten Servern ausgeführt. PostgreSQL und MariaDB wurden geprüft.
- Unter MariaDB und MySQL müssen beschriebene Tabellen materialisiert werden: Schreiben in eine virtuelle Tabelle ist nicht möglich.
- Db2 benötigt den IBM-Treiber auf dem Rechner des Dienstes.
- Der Windows-Dienst, die Android-Anwendung und die echte Prophetix-Anmeldung wurden noch nicht ausprobiert; der Desktop wurde nur gegen einen Scheindienst ausprobiert, nie unter Linux.
- Die Fremdschlüssel, Constraints und Trigger der Quelle werden auf den Sichten nicht neu angelegt.
- Die Pseudonymisierung hilft beim Schutz der Daten, aber wer den Schlüssel und die Quelle besitzt, kann alles re-identifizieren.
- Die k-Anonymität misst nicht das gesamte Re-Identifizierungsrisiko.
- Die Website datavirt.prophetix.com wurde noch nicht in der Produktion ausprobiert: Ihre Bereitstellung und die echte Prophetix-Anmeldung stehen noch aus.