Aufgabe 12 - Benutzer und Rechte mit Northwind
Aufgabe 12 - Benutzer und Rechte mit der Northwind-Datenbank
Abschnitt betitelt „Aufgabe 12 - Benutzer und Rechte mit der Northwind-Datenbank“Worum geht es?
Abschnitt betitelt „Worum geht es?“In dieser Übung wird an der Northwind-Datenbank ein Least-Privilege-Rollenkonzept praktisch angelegt, getestet und mit Systemviews überprüft (siehe Kapitel 5 - Benutzer und Rechte). Im Expertenteil werden fehlerhafte Rechtekonfigurationen systematisch diagnostiziert und behoben.
Was Sie dafür brauchen
Abschnitt betitelt „Was Sie dafür brauchen“- Kapitel 5 - Benutzer und Rechte.
- Ein PostgreSQL-Server; das Northwind-Schema von northwind_psql.
Welche Kompetenzen Sie erwerben und zeigen
Abschnitt betitelt „Welche Kompetenzen Sie erwerben und zeigen“- Sie legen Benutzer an und verstehen die Standardrechte in PostgreSQL.
- Sie vergeben abteilungsspezifische Rechte nach Least Privilege.
- Sie prüfen vergebene Rechte mit Systemviews.
- Sie diagnostizieren und beheben Fehlkonfigurationen systematisch.
Pädagogische Einordnung
Abschnitt betitelt „Pädagogische Einordnung“- Reproduktion: Benutzer anlegen und den Standardzugriff testen (Teil A).
- Reorganisation und Transfer: abteilungsspezifische Rechte vergeben (Teil B).
- Reflexion, Problemlösung und Urteilsbildung: Rechte analysieren und Fehler debuggen (Teile C und D).
Arbeitsaufträge
Abschnitt betitelt „Arbeitsaufträge“Die Übung ist auf etwa zwei Stunden ausgelegt. Teil D ist der Expertenteil.
Teil A - Benutzer und Standardrechte
Abschnitt betitelt „Teil A - Benutzer und Standardrechte“- Eine Datenbank
northwind_permissionsanlegen und Schema samt Daten importieren. - Drei Benutzer mit Login und Passwort anlegen:
sales_user(Vertrieb),inventory_user(Produktverwaltung),report_user(Controlling). - Sich als
sales_useranmelden und eine einfache Abfrage auf einer Northwind-Tabelle versuchen. Funktioniert der Zugriff sofort? Falls nicht: warum? Was sagt das über die Standardrechte aus?
Teil B - Abteilungsrechte
Abschnitt betitelt „Teil B - Abteilungsrechte“- Vertrieb:
sales_userbekommt nur Leserechte aufcustomers,orders,order_details. Testen: lesen (ok), ändern und löschen (blockiert). - Produktverwaltung:
inventory_userdarfproductslesen und aktualisieren undsupplierslesen, aber nicht auf Kunden-/Bestelldaten zugreifen. Testen. - Controlling:
report_userdarf alle Tabellen lesen, aber nichts ändern. Testen:SELECT(ok),INSERT/UPDATE/DELETE(blockiert).
Teil C - Rechte prüfen und Rollen
Abschnitt betitelt „Teil C - Rechte prüfen und Rollen“- Eine Systemview finden, die Tabellenprivilegien auflistet (z. B.
information_schema.role_table_grants). Die Rechte aufcustomersanalysieren und prüfen, welche Rechtesales_userhat. - Statt Einzelrechte eine Gruppenrolle für den Vertrieb entwerfen, ihr die nötigen Rechte geben und
sales_userzuweisen. Begründen, warum Rollen in großen Systemen leichter zu verwalten sind.
Teil D - Expertenteil: Fehlkonfigurationen systematisch debuggen
Abschnitt betitelt „Teil D - Expertenteil: Fehlkonfigurationen systematisch debuggen“Ein Admin hat Rechte falsch gesetzt. Diagnostizieren und beheben Sie drei Fälle, und dokumentieren Sie jeweils, wie Sie den Fehler systematisch gefunden haben (nicht durch Raten, sondern über information_schema.role_table_grants bzw. \dp).
- Szenario 1: Der Vertrieb meldet
ERROR: permission denied for table customers. Situation nachstellen, fehlendes Recht bestimmen (fehltSELECT? oderUSAGEauf dem Schema? oderCONNECT?), beheben. - Szenario 2:
inventory_usererhält beim Produkt-UpdateERROR: permission denied for table products. Analysieren, welches Recht für einUPDATEnötig ist und welches der Benutzer tatsächlich hatte, dann korrigieren. - Szenario 3:
report_userkann plötzlich Daten löschen. Die vergebenen Privilegien analysieren, das unnötigeDELETE-Recht entziehen und nachweisen, dass nur nochSELECTbleibt. - Kapselung (Zusatz): Legen Sie eine Function an, die eine kontrollierte Änderung durchführt (
SECURITY DEFINER), geben Siesales_usernurEXECUTEdarauf und zeigen Sie, dass er die Änderung über die Function ausführen kann, ohne direktes Schreibrecht auf der Tabelle zu haben.
Wissenscheck
Abschnitt betitelt „Wissenscheck“- Warum funktioniert eine Abfrage direkt nach dem Anlegen eines Benutzers oft noch nicht?
- Welche Rechte braucht ein
UPDATEmindestens? - Mit welcher Systemview prüft man Tabellenprivilegien?
- Warum sind Gruppenrollen in großen Systemen leichter zu verwalten?
- Wie diagnostiziert man ein
permission deniedsystematisch statt durch Raten?
- Eine Dokumentation (1–2 Seiten) mit den angelegten Benutzern/Rollen, dem Nachweis der Rechte per Systemview, mindestens zwei dokumentierten Fehlermeldungen samt Erklärung und der Analyse mindestens eines Debugging-Szenarios aus Teil D.
HTL Villach, 2025-2026,
https://www.htl-villach.at