Datenschutzerklärung
Stand: Mai 2026
Inhalt- 15 Abschnitte
- 01.Verantwortlicher
- 02.Geltungsbereich
- 03.Erhobene personenbezogene Daten
- 04.Zwecke und Rechtsgrundlagen
- 05.Speicherdauer und Löschung
- 06.Hosting und Infrastruktur
- 07.E-Mail-Versand (Passwort-Reset)
- 08.Sessions, JWT-Tokens und Cookies
- 09.Datenbankverbindungsprofile
- 10.Weitergabe an Dritte
- 11.Keine Drittland-Übermittlung
- 12.Datensicherheit
- 13.Rechte der betroffenen Personen
- 14.Beschwerderecht
- 15.Änderungen
1. Verantwortlicher
Verantwortlicher im Sinne der Datenschutz-Grundverordnung (DSGVO) ist:
Marcus BelzRheintalbahnstraße 7
68753 Waghäusel
Deutschland
Telefon: +49 1577 3456535
E-Mail: di2@marcus-belz.de
2. Geltungsbereich
Diese Datenschutzerklärung gilt für die Webanwendung DI² - einen ETL-Generator für Datenbankteams. Die Anwendung ist ausschließlich für eingeladene Mitglieder zugänglich. Eine öffentliche Registrierung ist nicht möglich.
3. Erhobene personenbezogene Daten
3.1 Kontodaten
Bei der Anlage eines Nutzerkontos (ausschließlich durch Administratoren) werden folgende Daten gespeichert:
| Datenkategorie | Details |
|---|---|
| E-Mail-Adresse | Eindeutiger Identifikator und Kommunikationskanal |
| Name | Anzeigename innerhalb der Anwendung |
| Authentifizierungsdaten | Verwaltet durch Keycloak Identity Provider (kein Passwort-Hash in der App-Datenbank) |
| Kontostatus | Aktiv / Deaktiviert |
| Erstellungszeitpunkt | Datum der Kontoanlage |
Beim ersten Login eines Nutzers wird in der App-Datenbank zusätzlich ein technischer Schatten-Eintrag angelegt, der die Keycloak-User-ID, die E-Mail-Adresse und den Anzeigenamen als Cache hält. Dieser Cache erlaubt Anzeigen wie „Erstellt von Max Mustermann“ ohne ständige Rückfragen beim Identity-Provider. Sobald ein Nutzer in Keycloak gelöscht wird, werden E-Mail und Name in der App-Datenbank automatisch entfernt (DSGVO Art. 17 - Recht auf Vergessenwerden); nur die technische Referenz bleibt erhalten, damit historische Audit-Einträge weiterhin nachvollziehbar bleiben (anonymisiert als „Gelöschter Nutzer“).
3.2 Technische Zugriffsdaten (Brute-Force-Schutz)
Der Schutz vor Brute-Force-Angriffen wird vollständig durch Keycloak als Identity Provider übernommen. Keycloak speichert dabei intern fehlgeschlagene Anmeldeversuche und sperrt Konten temporär nach wiederholten Fehlversuchen. Diese Daten werden ausschließlich im Keycloak-Backend (PostgreSQL-Datenbank) verarbeitet und nicht an die Anwendung weitergegeben.
3.3 Datenbankverbindungsprofile
Nutzer können Verbindungsprofile zu externen Quelldatenbanken anlegen. Diese enthalten:
| Datenkategorie | Details |
|---|---|
| Verbindungsname | Frei wählbare Bezeichnung |
| Hostname / IP | Adresse des Datenbankservers |
| Port | Netzwerk-Port |
| Datenbankname | Name der Quelldatenbank |
| Benutzername | Datenbanknutzer |
| Passwort | Verschlüsselt gespeichert |
| Datenbanktyp | MSSQL oder PostgreSQL |
3.4 Generierte SQL-Scripts
Die von der Anwendung erzeugten DDL-Statements und SQL-Prozeduren werden nutzerbezogen gespeichert, um eine Script-Historie zu ermöglichen.
4. Zwecke und Rechtsgrundlagen der Verarbeitung
| Verarbeitungszweck | Daten | Rechtsgrundlage |
|---|---|---|
| Authentifizierung und Zugriffskontrolle | E-Mail, Passwort-Hash, Kontostatus | Art. 6 Abs. 1 lit. b DSGVO (Vertragserfüllung) |
| Session-Verwaltung | JWT-Token, Nutzer-ID | Art. 6 Abs. 1 lit. b DSGVO |
| Schutz vor Brute-Force-Angriffen | IP-Adresse (temporär) | Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse: IT-Sicherheit) |
| Speicherung von Verbindungsprofilen | Verbindungsdaten inkl. Passwort | Art. 6 Abs. 1 lit. b DSGVO |
| Script-Historie | Generierte SQL-Scripts, Nutzer-ID | Art. 6 Abs. 1 lit. b DSGVO |
| Nutzerverwaltung durch Admins | Alle Kontodaten | Art. 6 Abs. 1 lit. b DSGVO |
5. Speicherdauer und Löschung
| Datenkategorie | Speicherdauer |
|---|---|
| Kontodaten (aktive Konten) | Für die Dauer der Nutzung der Anwendung |
| Kontodaten (deaktivierte Konten) | Bis zur manuellen Löschung durch Administrator |
| JWT-Session-Token | 8 Stunden (automatisch ungültig) |
| IP-Adressen (Rate-Limiting) | Max. 60 Sekunden (Arbeitsspeicher) |
| Datenbankverbindungsprofile | Bis zur manuellen Löschung durch den Nutzer |
| Generierte SQL-Scripts | Bis zur manuellen Löschung durch den Nutzer oder Administrator |
6. Hosting und Infrastruktur
6.1 Hetzner Cloud (Anwendungsserver und Datenbank)
Die Anwendung wird auf einem Hetzner Cloud VPS betrieben. Hetzner Online GmbH ist ein deutsches Unternehmen mit Rechenzentren in Deutschland und Finnland (EU/EWR).
Hetzner Online GmbHIndustriestr. 25, 91710 Gunzenhausen, Deutschland
Datenschutz: hetzner.com/legal/privacy-policy
Alle personenbezogenen Daten werden ausschließlich auf Hetzner-Servern in der EU verarbeitet und gespeichert. Mit Hetzner besteht ein Auftragsverarbeitungsvertrag (AVV) gemäß Art. 28 DSGVO.
Eingesetzte Hetzner-Dienste:
- Hetzner Cloud VPS - Anwendungsserver (Next.js, Nginx als Reverse Proxy)
- PostgreSQL - Selbst gehostete Datenbank auf dem VPS
6.2 SSL/TLS-Verschlüsselung
Die Datenübertragung zwischen Browser und Server ist durch SSL/TLS verschlüsselt. Das Zertifikat wird kostenfrei über Let's Encrypt (Internet Security Research Group) ausgestellt. Let's Encrypt verarbeitet dabei ausschließlich den Domainnamen, keine personenbezogenen Daten der Nutzer.
6.3 DNS und Domain
Die Domainverwaltung erfolgt über All-Inkl.COM (new media GmbH, Deutschland). All-Inkl verwaltet ausschließlich DNS-Einträge und hat keinen Zugriff auf Anwendungsdaten.
new media GmbHHauptstraße 68, 02742 Friedersdorf, Deutschland
7. E-Mail-Versand (Passwort-Reset)
Ein automatischer E-Mail-Versand (z. B. für Passwort-Reset) ist in der aktuellen Version der Anwendung noch nicht implementiert. Passwörter werden ausschließlich manuell durch Administratoren zurückgesetzt.
8. Sessions, JWT-Tokens und Cookies
Nach der Anmeldung wird ein JSON Web Token (JWT) ausgestellt, das deine Sitzung repräsentiert. Dieses Token:
- hat eine Gültigkeitsdauer von 8 Stunden
- wird in deinem Browser als
HTTP-onlyCookie gespeichert - enthält ausschließlich: Nutzer-ID, E-Mail, Name
- wird nach Ablauf automatisch ungültig und erfordert eine erneute Anmeldung
Zusätzlich setzen wir ein einziges weiteres Cookie für eine reine UI-Präferenz:
sidebar_state- speichert ausschließlich, ob die Navigations-Sidebar auf- oder zugeklappt ist. Lebensdauer: 7 Tage. Kein personenbezogener Inhalt, kein Tracking, kein Drittanbieter. Technisch notwendig im Sinne § 25 Abs. 2 Nr. 2 TTDSG (Speicherung einer ausdrücklichen Nutzer-Präferenz) und daher ohne Einwilligung zulässig.
Es werden keine dauerhaften Tracking-Cookies oder Third-Party-Cookies eingesetzt.
9. Datenbankverbindungsprofile
Verbindungsprofile zu externen Datenbanken enthalten technische Zugangsdaten zu den Quelldatenbanken (Hostname, Port, Datenbankname, Benutzername, Passwort). Diese Daten:
- werden ausschließlich für die Herstellung von Datenbankverbindungen im Rahmen der ETL-Generierung verwendet
- werden verschlüsselt in der PostgreSQL-Datenbank auf dem Hetzner-Server gespeichert
- sind nur dir und Administratoren zugänglich (Row Level Security)
- werden nicht an Dritte weitergegeben
10. Weitergabe an Dritte
Personenbezogene Daten werden nicht an Dritte verkauft oder zu Werbezwecken weitergegeben. Eine Weitergabe erfolgt ausschließlich:
- An Hetzner Online GmbH im Rahmen des Hostingvertrags (AVV vorhanden)
- Bei gesetzlicher Verpflichtung (z. B. behördliche Anfragen)
11. Keine Drittland-Übermittlung
Alle personenbezogenen Daten werden ausschließlich auf Servern innerhalb der Europäischen Union (EU) bzw. des Europäischen Wirtschaftsraums (EWR) verarbeitet und gespeichert. Es findet keine Übermittlung personenbezogener Daten in Drittländer statt.
Auch sämtliche statischen Assets - Schriftarten (Inter, JetBrains Mono), Icons, Logos und JavaScript-Bundles - werden direkt vom Hetzner-Server in Falkenstein ausgeliefert. Es werden insbesondere keine Schriftarten von Google Fonts oder vergleichbaren Drittanbieter-CDNs nachgeladen, sodass beim Aufruf der Seite keine IP-Adresse oder andere Verbindungsdaten an US-Server übermittelt werden (relevant im Kontext LG München I, Urteil v. 20.01.2022, Az. 3 O 17493/20 zu Google Fonts).
12. Datensicherheit
| Maßnahme | Umsetzung |
|---|---|
| Transportverschlüsselung | TLS 1.2/1.3 via Nginx + Let's Encrypt |
| Passwortsicherheit | Passwortverwaltung durch Keycloak Identity Provider (kein Passwort-Hash in der App-Datenbank) |
| Brute-Force-Schutz | Keycloak-integrierter Schutz (temporäre Kontosperrung nach Fehlversuchen) |
| Datenbankzugriffsschutz | Row Level Security (RLS) in PostgreSQL |
| Session-Sicherheit | JWT mit 8h Ablauf, HTTP-only Cookies |
| Zugriffskontrolle | Rollenbasiert (Nutzer / Administrator) via Keycloak Realm-Rollen |
| Netzwerksicherheit | Nginx Reverse Proxy, kein direkter DB-Zugriff von außen |
13. Deine Rechte
Als betroffene Person stehen dir gemäß DSGVO folgende Rechte zu:
- Auskunft (Art. 15) - Welche Daten sind über dich gespeichert?
- Berichtigung (Art. 16) - Unrichtige Daten korrigieren lassen
- Löschung (Art. 17) - Deine Daten löschen lassen, sofern keine Aufbewahrungspflicht besteht
- Einschränkung (Art. 18) - Verarbeitung deiner Daten einschränken lassen
- Datenübertragbarkeit (Art. 20) - Deine Daten in maschinenlesbarem Format erhalten
- Widerspruch (Art. 21) - Widerspruch gegen Verarbeitung auf Basis berechtigter Interessen einlegen
Kontakt zur Ausübung deiner Rechte: di2@marcus-belz.de
14. Beschwerderecht
Du hast das Recht, dich bei der zuständigen Datenschutz-Aufsichtsbehörde zu beschweren:
Der Landesbeauftragte für den Datenschutz und die Informationsfreiheit Baden-Württemberg (LfDI BW)Königstraße 10a, 70173 Stuttgart
poststelle@lfdi.bwl.de
www.baden-wuerttemberg.datenschutz.de
15. Änderungen dieser Datenschutzerklärung
Diese Datenschutzerklärung wird bei Änderungen der Anwendung oder der Rechtslage aktualisiert. Insbesondere wird Abschnitt 7 (E-Mail-Versand) ergänzt, sobald ein Passwort-Reset per E-Mail implementiert wird.