Zurück zur StartseiteInformatik · Q1 Leistungskurs · Fach wechseln
Kostenlos starten
Q1 Leistungskurs · Informatik
Datenbanken, Datenstrukturen und Automaten in der Qualifikationsphase · Datenbanken und SQL

Sichere Nutzung von Datenbanken

Die Schulverwaltung eines Gymnasiums in Köln speichert Noten, Adressen und Krankmeldungen in einer Datenbank. Gleichzeitig arbeiten Sekretariat, Lehrkräfte und Eltern-Portal damit. Was muss passieren, damit keine Note verfälscht wird, niemand fremde Daten liest und nach einem Serverabsturz nichts verloren geht?

Integrität und Konsistenz

Ein Datenbanksystem (DBS) soll Daten nicht nur speichern, sondern auch richtig halten. Dafür gibt es zwei verwandte Begriffe.

Typische Integritätsbedingungen:

Bedingung Bedeutung Beispiel Schülerdatenbank
Primärschlüssel Jeder Datensatz ist eindeutig und nicht leer SNr identifiziert jeden Schüler genau einmal
Fremdschlüssel (referenzielle Integrität) Verweis zeigt auf einen existierenden Datensatz Eine Note darf nur für eine vorhandene SNr eingetragen werden
Wertebereich Werte liegen in erlaubten Grenzen Punkte nur von 0 bis 15
Pflichtfeld (NOT NULL) Wert muss vorhanden sein Jeder Schüler hat ein Geburtsdatum
Zwei Tabellen: Die Tabelle Note verweist über den Fremdschlüssel SNr auf die Tabelle Schüler; ein Verweis auf SNr 99 ist ungültig. Schüler SNr (Primärschlüssel) Name Geburtsdatum Note NNr (Primärschlüssel) SNr (Fremdschlüssel) Punkte verweist auf SNr = 99 existiert nicht → abgelehnt

Ein Beispiel zur Konsistenz: Steht die Adresse eines Schülers in zwei Tabellen und nur eine wird geändert, ist die Datenbank inkonsistent. Deshalb speichert man jede Information möglichst nur einmal (wenig Redundanz).

Üben★☆☆Nicht begonnen
Erklären Sie die Begriffe Datenintegrität und Datenkonsistenz und nennen Sie je ein Beispiel aus einer Schülerdatenbank.

Erklären Sie die Begriffe Datenintegrität und Datenkonsistenz und nennen Sie je ein Beispiel aus einer Schülerdatenbank.

Lösen

Transaktionen

Manche Änderungen bestehen aus mehreren Schritten, die nur zusammen sinnvoll sind. Beispiel: eine Überweisung von 200 € besteht aus Abbuchung und Gutschrift. Stürzt der Server dazwischen ab, fehlt Geld.

Üben★★☆Nicht begonnen
In der Tabelle Konto(KtoNr, Inhaber, Stand) überweist eine Transaktion 200 € von Konto 1 auf Konto 2: zuerst Abbuchung, dann Gutschrift. Nach der Abbuchung stürzt der…

In der Tabelle Konto(KtoNr, Inhaber, Stand) überweist eine Transaktion 200 € von Konto 1 auf Konto 2: zuerst Abbuchung, dann Gutschrift. Nach der Abbuchung stürzt der Server ab.

  1. a) Beschreiben Sie den entstehenden inkonsistenten Zustand.
  1. b) Erklären Sie, wie das Transaktionskonzept (Atomarität, Rollback) das Problem löst.
  1. c) Nennen Sie eine Integritätsbedingung, die die Datenbank zusätzlich prüfen sollte.
Lösen

Mehrbenutzerbetrieb und Sperren

Viele Nutzer greifen gleichzeitig zu, etwa beim Kartenverkauf für ein Konzert in der Lanxess Arena. Ohne Koordination entstehen Fehler.

Zeitablauf zweier Transaktionen A und B auf demselben Platz ohne Sperre: beide lesen 1, beide schreiben 0. A B liest frei=1 liest frei=1 schreibt 0 schreibt 0 Zeit → Ergebnis: Platz doppelt vergeben
Üben★★★Nicht begonnen
Zwei Nutzer buchen gleichzeitig den letzten Platz eines Konzerts (Tabelle Platz(PNr, frei)). Beide lesen frei = 1 und schreiben dann frei = 0. a) Beschreiben Sie den…

Zwei Nutzer buchen gleichzeitig den letzten Platz eines Konzerts (Tabelle Platz(PNr, frei)). Beide lesen frei = 1 und schreiben dann frei = 0.

  1. a) Beschreiben Sie den Ablauf als Verschränkung der Operationen und das fehlerhafte Ergebnis.
  1. b) Erklären Sie, wie Sperren oder Transaktionen mit Isolation das verhindern.
  1. c) Diskutieren Sie ein mögliches Problem von Sperren (Verklemmung).
Lösen

Rechteverwaltung

Nicht jeder darf alles. Zuerst muss das System wissen, wer zugreift (Authentifizierung), dann entscheidet es, was diese Person darf (Autorisierung). Ein DBS verwaltet dafür Benutzer und Rollen. Dabei gilt das Prinzip der minimalen Rechte: Jeder erhält genau die Rechte, die er für seine Aufgabe braucht, und keine mehr. Das begrenzt den Schaden bei Fehlern und Angriffen.

Rolle Tabelle Noten Tabelle Stammdaten
Sekretariat lesen lesen, ändern
Lehrkraft lesen, ändern (eigene Kurse) lesen (Name)
Schüler nur eigene Noten lesen nichts

Die Authentifizierung beruht auf Wissen (Passwort, PIN), Besitz (Chipkarte, Smartphone-App) oder Biometrie (Fingerabdruck). Die Zwei-Faktor-Authentifizierung (2FA) kombiniert zwei dieser Arten, z. B. Passwort und TAN-App. Wird ein Faktor gestohlen, bleibt der Zugang geschützt.

In SQL vergibt und entzieht man Rechte so:

GRANT SELECT, UPDATE ON Noten TO lehrkraft;

REVOKE UPDATE ON Noten FROM lehrkraft;

Für „nur eigene Daten“ nutzt man Sichten (Views), die nur passende Zeilen und Spalten zeigen.

Passwörter speichert man nie im Klartext, sondern als Hashwert (zusammen mit einem zufälligen Zusatz, dem Salt). Eine Hashfunktion ist eine Einwegfunktion: Aus dem Hash lässt sich das Passwort nicht zurückrechnen. Beim Login wird das eingegebene Passwort gehasht und mit dem gespeicherten Wert verglichen. Gelangt die Datenbank in falsche Hände, sind die Passwörter nicht sofort lesbar.

Üben★☆☆Nicht begonnen
In einer Schuldatenbank gibt es die Rollen Sekretariat, Lehrkraft und Schüler. a) Nennen Sie für jede Rolle ein sinnvolles Zugriffsrecht (lesen, ändern, löschen). b)…

In einer Schuldatenbank gibt es die Rollen Sekretariat, Lehrkraft und Schüler.

  1. a) Nennen Sie für jede Rolle ein sinnvolles Zugriffsrecht (lesen, ändern, löschen).
  1. b) Erklären Sie das Prinzip der minimalen Rechte.
Lösen
Üben★★☆Nicht begonnen
Eine Arztpraxis in Freiburg speichert Patientendaten in einer Datenbank. a) Entwerfen Sie ein Rechtekonzept für Empfang, Ärztinnen und Administration (SQL: GRANT/REVOKE,…

Eine Arztpraxis in Freiburg speichert Patientendaten in einer Datenbank.

  1. a) Entwerfen Sie ein Rechtekonzept für Empfang, Ärztinnen und Administration (SQL: GRANT/REVOKE, mindestens zwei Beispielbefehle).
  1. b) Begründen Sie, warum Passwörter nur als Hashwerte gespeichert werden sollten.
Lösen

SQL-Injection

Viele Anwendungen setzen Abfragen aus festen Teilen und Nutzereingaben zusammen. Wird die Eingabe ungeprüft eingefügt, kann ein Angreifer eigenen SQL-Code einschleusen. Das nennt man SQL-Injection: eine Schwachstelle der Anwendung, nicht des DBS selbst.

Schutz:

  • Prepared Statements (vorbereitete Anweisungen): Die Abfrage mit Platzhaltern, z. B. WHERE Name = ?, wird zuerst übersetzt. Die Eingabe wird danach nur als Wert eingesetzt und nie als SQL-Code interpretiert. Der Code ist von den Daten getrennt.

  • Maskieren einzelner Zeichen (z. B. ' ersetzen) ist anfälliger: Man vergisst leicht Sonderfälle (andere Zeichenkodierungen, Zahlenfelder ohne Anführungszeichen). Eine Blacklist ist nie vollständig.

  • Weitere Schutzebenen: Datenbankbenutzer der Anwendung mit minimalen Rechten (kein Zugriff auf Nutzer), keine detaillierten Fehlermeldungen nach außen, gehashte Passwörter, Eingabeprüfung.

Üben★☆☆Nicht begonnen
Ein Login-Formular erzeugt die Abfrage SELECT * FROM Nutzer WHERE Name = ' + Eingabe + '; a) Erklären Sie, was SQL-Injection ist. b) Nennen Sie eine Schutzmaßnahme.

Ein Login-Formular erzeugt die Abfrage SELECT * FROM Nutzer WHERE Name = ' + Eingabe + ';

  1. a) Erklären Sie, was SQL-Injection ist.
  1. b) Nennen Sie eine Schutzmaßnahme.
Lösen
Üben★★☆Nicht begonnen
Ein Webshop erzeugt die Abfrage SELECT * FROM Nutzer WHERE Name = ' + n + ' AND Passwort = ' + p + '. a) Welche Abfrage entsteht bei der Eingabe n = admin' -- und…

Ein Webshop erzeugt die Abfrage SELECT * FROM Nutzer WHERE Name = ' + n + ' AND Passwort = ' + p + '.

  1. a) Welche Abfrage entsteht bei der Eingabe n = admin' -- und beliebigem Passwort?
  1. b) Erklären Sie, warum der Angreifer damit ohne Passwort Zugang erhält.
  1. c) Beschreiben Sie, wie vorbereitete Anweisungen (Prepared Statements) das verhindern.
Lösen
Üben★★★Nicht begonnen
Eine Suchfunktion eines Online-Shops bildet SELECT Name, Preis FROM Artikel WHERE Name LIKE '% + s + %'. a) Konstruieren Sie eine Eingabe s, mit der ein Angreifer…

Eine Suchfunktion eines Online-Shops bildet SELECT Name, Preis FROM Artikel WHERE Name LIKE '% + s + %'.

  1. a) Konstruieren Sie eine Eingabe s, mit der ein Angreifer zusätzlich alle Einträge der Tabelle Nutzer(Name, Passwort) ausliest (UNION). Begründen Sie die Bedingung an die Spaltenzahl.
  1. b) Erläutern Sie, warum das Maskieren einzelner Zeichen weniger sicher ist als Prepared Statements.
  1. c) Bewerten Sie, welche weiteren Schutzebenen (Rechte, Fehlermeldungen, Hashing) den Schaden begrenzen.
Lösen

Datenschutz nach DSGVO

Datensicherheit schützt Daten vor Verlust und unbefugtem Zugriff. Datenschutz schützt die Menschen, deren personenbezogene Daten gespeichert werden. Die DSGVO verlangt von Schulen und Unternehmen technisch-organisatorische Maßnahmen, zum Beispiel:

  • Zugriffskontrolle (Rollen, Rechte, Authentifizierung),

  • Protokollierung (wer hat wann welche Daten gelesen oder geändert),

  • Verschlüsselung (Datenträger, Übertragung),

  • Datensicherung (Backup) und Notfallplan.

Wichtig ist auch die Reaktion auf einen Sicherheitsvorfall: Ein Backup ermöglicht die Wiederherstellung, und bei einer Datenpanne muss die Meldung an die Datenschutzbehörde innerhalb von 72 Stunden erfolgen.

Zwei Grundsätze:

  • Datenminimierung: Nur Daten erheben, die wirklich nötig sind. Für die Notenverwaltung braucht man keine Religionszugehörigkeit.

  • Zweckbindung: Daten dürfen nur für den Zweck genutzt werden, für den sie erhoben wurden. Notendaten dienen nicht der Werbung.

Üben★★★Nicht begonnen
Eine Schule in Köln plant eine Datenbank mit Noten und personenbezogenen Daten. a) Nennen und begründen Sie drei technisch-organisatorische Maßnahmen im Sinne des…

Eine Schule in Köln plant eine Datenbank mit Noten und personenbezogenen Daten.

  1. a) Nennen und begründen Sie drei technisch-organisatorische Maßnahmen im Sinne des Datenschutzes (DSGVO), z. B. Zugriffskontrolle, Protokollierung, Verschlüsselung.
  1. b) Erläutern Sie die Grundsätze der Datenminimierung und der Zweckbindung am Beispiel.
  1. c) Beurteilen Sie, ob ein Lehrer lesenden Zugriff auf Noten aller Schüler der Schule erhalten sollte.
Lösen

Zurück zum Anfang: Die Schulverwaltung bleibt sicher, wenn Integritätsbedingungen die Daten richtig halten, Transaktionen und Sperren Abstürze und paralleles Arbeiten abfangen, Rechte nach dem Prinzip der minimalen Rechte vergeben werden, Prepared Statements Injection verhindern und die DSGVO-Grundsätze eingehalten werden.

Auf einen Blick

Alle Aufgaben zu diesem Abschnitt anzeigen