Was tun, wenn jemand Auskunft verlangt?
Betroffenenrechte sind die Rechte einer Person gegenüber jedem, der ihre Daten verarbeitet: Auskunft, Berichtigung und Löschung. Wer eine solche Anfrage bekommt, muss alle Daten dieser Person finden, und zwar in jeder Tabelle.
Eine Datenpanne ist der zweite Fall, in dem schnell gehandelt werden muss. Beide Fälle übt diese Lektion an einem Shop.
Am Ende dieser Lektion
Notiz
Ich kann die Anfrage einer Person und eine Datenpanne richtig behandeln.
Schlüsselwörter
| Begriff | Was er bedeutet |
|---|---|
| Auskunft | die Antwort, welche Daten über eine Person gespeichert sind |
| Berichtigung | falsche Daten einer Person korrigieren |
| Löschung | Daten einer Person entfernen oder unkenntlich machen |
| Datenpanne | ein Vorfall, bei dem Daten verloren gehen oder in falsche Hände kommen |
| Meldung | die Nachricht über eine Datenpanne an die zuständige Stelle und an die Betroffenen |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Eine Auskunft sammelt Daten aus allen Tabellen
Eine Person fragt, was über sie gespeichert ist. Die Auskunft muss alles nennen, nicht nur die Zeile in der Kundentabelle. Auch Bestellungen, Bewertungen und Newsletter-Einträge gehören dazu.
Dafür verbinden Sie die Tabellen über den Schlüssel der Person. Im Lab ist das die Kundin mit der Nummer 5. Richten Sie zuerst das Terminal ein.
Das Zertifikat des Servers annehmen
printf '[client]\nssl-verify-server-cert=0\n' > ~/.my.cnfHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Eine Abkürzung für den Client
alias db='mariadb -h db -u student -pstudent -t -e'Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Die Stammdaten der Kundin 5
db "SELECT id, first_name, last_name, email, phone, city, country, joined_on FROM shop.customers WHERE id = 5"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Ihre Bestellungen
db "SELECT id, ordered_at, status FROM shop.orders WHERE customer_id = 5 ORDER BY ordered_at"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Ihre Bewertungen
db "SELECT id, product_id, stars, reviewed_on FROM shop.reviews WHERE customer_id = 5 ORDER BY reviewed_on"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Bestellungen und Bewertungen in einer Liste
db "SELECT 'Bestellung' AS quelle, id AS nummer, ordered_at AS datum FROM shop.orders WHERE customer_id = 5 UNION ALL SELECT 'Bewertung', id, reviewed_on FROM shop.reviews WHERE customer_id = 5 ORDER BY datum"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Sieben Zeilen zeigen Bestellungen und Bewertungen
Der letzte Run zeigt sieben Zeilen: fünf Bestellungen und zwei Bewertungen. Mit den Stammdaten ist das die Auskunft über diese Kundin aus diesem Shop.
UNION ALL klebt die Ergebnisse zweier Abfragen untereinander. Beide brauchen gleich viele Spalten, und die erste Abfrage benennt sie.
Eine Löschung kann auch ein Unkenntlichmachen sein
Eine Person verlangt, dass ihre Daten gelöscht werden. Manche Zeilen darf der Shop aber behalten, etwa Bestellungen für die Buchführung. Dann bleibt die Bestellung, und die Person darin wird unkenntlich.
Das üben Sie an einer Kopie der Kundentabelle. Die Daten des Labs bleiben unverändert.
Eine eigene Datenbank anlegen
db "CREATE DATABASE IF NOT EXISTS student_datenschutz"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Eine alte Kopie wegwerfen
db "DROP TABLE IF EXISTS student_datenschutz.kopie_kunden"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Die Kundentabelle kopieren
db "CREATE TABLE student_datenschutz.kopie_kunden AS SELECT * FROM shop.customers"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Die Kundin 5 unkenntlich machen
db "UPDATE student_datenschutz.kopie_kunden SET first_name = 'geloescht', last_name = 'geloescht', email = CONCAT('geloescht-', id, '@example.invalid'), phone = NULL, city = 'unbekannt' WHERE id = 5"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Das Ergebnis ansehen
db "SELECT id, first_name, last_name, email, phone, city, country FROM student_datenschutz.kopie_kunden WHERE id = 5"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Ein häufiger Fehler
Warnung
Viele glauben, eine Löschung sei erledigt, wenn die Zeile in der Kundentabelle verschwunden ist. Das stimmt nicht. Dieselbe Person steht auch in Bestellungen, Bewertungen, Newsletter-Listen und Sicherungen. Suchen Sie in jeder Tabelle.
Bei einer Datenpanne zählen die ersten Schritte
Ein Laptop mit Kundendaten wird gestohlen, oder eine falsche Mail geht an hundert Personen. Das ist eine Datenpanne.
Dann gilt: Schaden begrenzen, klären, welche Daten und wie viele Personen betroffen sind, und die zuständige Stelle schnell informieren. Bei hohem Risiko müssen auch die Betroffenen es erfahren.
Probieren Sie es: Bestellungen einer Person
-- Alle Bestellungen der Person mit der Nummer 1.
SELECT id, bestellt_am, summe_euro FROM bestellungen
WHERE kunde_id = 1
ORDER BY bestellt_am;
-- Ändern Sie die Abfrage: Alle Bewertungen derselben Person, mit produkt und bewertet_am.