Aufgabe 12 - Benutzer und Rechte mit Northwind
Exercise 12 - Benutzer und Rechte mit der Northwind Datenbank
Abschnitt betitelt „Exercise 12 - Benutzer und Rechte mit der Northwind Datenbank“Szenario: Zugriffskontrolle in einer Unternehmensdatenbank
Abschnitt betitelt „Szenario: Zugriffskontrolle in einer Unternehmensdatenbank“Sie arbeiten als Database Security Engineer in einem Unternehmen, das ein internes Bestell- und Warenwirtschaftssystem betreibt.
Die Datenbank basiert auf dem klassischen Northwind Schema.
Aus Sicherheitsgründen gilt im Unternehmen das Principle of Least Privilege:
Jeder Benutzer darf nur genau die Rechte besitzen, die für seine Arbeit notwendig sind.
Ihre Aufgabe ist es, ein Rollenkonzept zu entwerfen, Benutzer anzulegen und deren Zugriffsrechte zu konfigurieren.
Die Übung basiert auf den Konzepten dieser Dokumentation:
Vorbereitung – Eigene Northwind Datenbank erstellen
Abschnitt betitelt „Vorbereitung – Eigene Northwind Datenbank erstellen“Erstellen Sie für diese Übung eine zweite Northwind Datenbank. Verwenden Sie das PostgreSQL-Beispielschema:
https://github.com/pthom/northwind_psql
Aufgaben
Abschnitt betitelt „Aufgaben“- Erstellen Sie eine neue Datenbank mit dem Namen
northwind_permissions- Importieren Sie das Northwind-Schema und die Beispieldaten in diese Datenbank.
Auftrag 1 – Benutzer für verschiedene Abteilungen
Abschnitt betitelt „Auftrag 1 – Benutzer für verschiedene Abteilungen“Das Unternehmen hat drei verschiedene Benutzergruppen.
| Benutzer | Aufgabe im Unternehmen |
|---|---|
| sales_user | arbeitet im Vertrieb |
| inventory_user | verwaltet Produkte |
| report_user | erstellt Auswertungen |
Aufgaben
Abschnitt betitelt „Aufgaben“- Legen Sie drei neue Datenbankbenutzer mit den oben genannten Namen an.
- Jeder Benutzer muss sich an der Datenbank anmelden können.
- Verwenden Sie für alle Benutzer ein Passwort.
Reflexionsfragen
Abschnitt betitelt „Reflexionsfragen“- Welche SQL-Anweisung wird verwendet, um Benutzer oder Rollen zu erstellen?
- Wie können Sie alle vorhandenen Rollen in PostgreSQL anzeigen lassen?
- Warum behandelt PostgreSQL Benutzer technisch ebenfalls als Rollen?
Auftrag 2 – Zugriff testen
Abschnitt betitelt „Auftrag 2 – Zugriff testen“Versuchen Sie sich mit einem der neu angelegten Benutzer an der Datenbank anzumelden.
Führen Sie anschließend eine einfache Abfrage auf einer Northwind-Tabelle aus.
Beobachtung
Abschnitt betitelt „Beobachtung“Überprüfen Sie, ob der Zugriff funktioniert.
Reflexionsfragen
Abschnitt betitelt „Reflexionsfragen“- Funktioniert die Abfrage direkt nach dem Anlegen des Users?
- Falls nicht: Warum?
- Was sagt das über die Standardrechte in PostgreSQL aus?
Auftrag 3 – Rechte für den Vertrieb
Abschnitt betitelt „Auftrag 3 – Rechte für den Vertrieb“Der Benutzer sales_user arbeitet im Vertrieb.
Er benötigt Zugriff auf Daten zu:
- customers
- orders
- order_details
Dieser Benutzer soll Daten nur lesen können, aber keine Änderungen durchführen dürfen.
Aufgaben
Abschnitt betitelt „Aufgaben“- Konfigurieren Sie passende Privilegien für diese Tabellen.
- Melden Sie sich anschließend als
sales_useran. - Testen Sie folgende Operationen:
- Daten lesen
- Daten ändern
- Daten löschen
Reflexionsfragen
Abschnitt betitelt „Reflexionsfragen“- Welche Operationen funktionieren?
- Welche Operationen werden blockiert?
- Warum ist dieses Verhalten aus Sicherheitsgründen sinnvoll?
Auftrag 4 – Rechte für Produktverwaltung
Abschnitt betitelt „Auftrag 4 – Rechte für Produktverwaltung“Der Benutzer inventory_user arbeitet in der Produktverwaltung.
Diese Person soll:
- Produktinformationen lesen
- Produktinformationen aktualisieren
- Lieferanteninformationen einsehen
Der Benutzer soll jedoch keinen Zugriff auf Kunden- oder Bestelldaten haben.
Aufgaben
Abschnitt betitelt „Aufgaben“- Konfigurieren Sie passende Rechte für:
- products
- suppliers
- Testen Sie anschließend:
- das Lesen von Produktdaten
- das Aktualisieren von Produktdaten
- den Zugriff auf andere Tabellen des Systems
Reflexionsfragen
Abschnitt betitelt „Reflexionsfragen“- Welche Abfragen funktionieren?
- Welche werden blockiert?
- Warum ist diese Einschränkung aus Datenschutzsicht wichtig?
Auftrag 5 – Reporting Benutzer
Abschnitt betitelt „Auftrag 5 – Reporting Benutzer“Der Benutzer report_user arbeitet im Controlling.
Dieser Benutzer soll:
- alle Tabellen lesen können
- aber keine Änderungen durchführen
Aufgaben
Abschnitt betitelt „Aufgaben“- Konfigurieren Sie passende Rechte für diese Rolle.
- Testen Sie anschließend:
- SELECT-Abfragen
- INSERT-, UPDATE- und DELETE-Befehle
Reflexionsfragen
Abschnitt betitelt „Reflexionsfragen“- Warum benötigen Reporting-Systeme typischerweise nur Leserechte?
- Welche Risiken entstehen, wenn Reporting-Benutzer Schreibrechte erhalten?
Auftrag 6 – Rechte analysieren
Abschnitt betitelt „Auftrag 6 – Rechte analysieren“PostgreSQL stellt Systemviews bereit, mit denen sich Berechtigungen analysieren lassen.
Aufgaben
Abschnitt betitelt „Aufgaben“- Finden Sie eine Systemview, die Tabellenprivilegien auflistet.
- Analysieren Sie die Rechte auf der Tabelle
customers. - Überprüfen Sie, welche Rechte
sales_userbesitzt.
Reflexionsfragen
Abschnitt betitelt „Reflexionsfragen“- Welche Privilegien hat
sales_userauf der Tabellecustomers? - Welche Benutzer haben Zugriff auf
products?
Debugging-Aufgabe – Falsch konfigurierte Rechte
Abschnitt betitelt „Debugging-Aufgabe – Falsch konfigurierte Rechte“Ein Administrator hat versehentlich mehrere Rechte falsch konfiguriert.
Beim Testen der Anwendung treten nun verschiedene Fehlermeldungen auf.
Ihre Aufgabe ist es, die Ursache zu analysieren und die Konfiguration zu korrigieren.
Szenario 1
Abschnitt betitelt „Szenario 1“Ein Mitarbeiter aus dem Vertrieb meldet:
ERROR: permission denied for table customers
Aufgaben
Abschnitt betitelt „Aufgaben“- Versuchen Sie, diese Situation nachzustellen.
- Analysieren Sie, welche Rechte dem Benutzer fehlen.
- Beheben Sie das Problem.
- Welche Berechtigung fehlt?
- Wie kann man das Problem systematisch diagnostizieren?
Szenario 2
Abschnitt betitelt „Szenario 2“Der Benutzer inventory_user versucht, ein Produkt zu aktualisieren und erhält:
ERROR: permission denied for table products
Aufgaben
Abschnitt betitelt „Aufgaben“- Analysieren Sie, warum das Update fehlschlägt.
- Überprüfen Sie die vergebenen Rechte.
- Korrigieren Sie die Konfiguration.
- Welche Rechte sind für ein Update erforderlich?
- Welche Rechte hatte der Benutzer tatsächlich?
Szenario 3
Abschnitt betitelt „Szenario 3“Der Benutzer report_user kann plötzlich Daten löschen.
Dies stellt ein Sicherheitsproblem dar.
Aufgaben
Abschnitt betitelt „Aufgaben“- Analysieren Sie, welche Privilegien vergeben wurden.
- Entfernen Sie die unnötigen Rechte.
- Stellen Sie sicher, dass der Benutzer nur noch Leserechte besitzt.
- Welche Rechte sind für DELETE erforderlich?
- Wie können solche Fehlkonfigurationen entdeckt werden?
Rollen statt Einzelrechte
Abschnitt betitelt „Rollen statt Einzelrechte“In größeren Systemen werden Rechte selten direkt an Benutzer vergeben.
Stattdessen werden Rollen als Gruppen verwendet.
Aufgaben
Abschnitt betitelt „Aufgaben“- Entwerfen Sie eine Rolle für den Vertrieb.
- Vergeben Sie die notwendigen Rechte an diese Rolle.
- Ordnen Sie anschließend
sales_userdieser Rolle zu.
Reflexionsfragen
Abschnitt betitelt „Reflexionsfragen“- Warum sind Rollen in großen Systemen leichter zu verwalten?
- In welchen realen IT-Systemen wird dieses Konzept verwendet?
Dokumentieren Sie Ihre Arbeit in einer kurzen technischen Dokumentation.
Die Abgabe soll enthalten:
1. Beschreibung der Benutzer und Rollen
Abschnitt betitelt „1. Beschreibung der Benutzer und Rollen“Beschreiben Sie kurz:
- welche Benutzer Sie angelegt haben
- welche Rollen Sie eventuell erstellt haben
- welche Rechte jede Rolle bzw. jeder Benutzer besitzt
2. Nachweis der vergebenen Rechte
Abschnitt betitelt „2. Nachweis der vergebenen Rechte“Zeigen Sie anhand geeigneter SQL-Abfragen oder Systemviews:
- welche Privilegien
sales_userbesitzt - welche Privilegien
inventory_userbesitzt - welche Privilegien
report_userbesitzt
Screenshots oder Konsolenausgaben sind ausreichend.
3. Tests der Zugriffskontrolle
Abschnitt betitelt „3. Tests der Zugriffskontrolle“Führen Sie Tests durch und dokumentieren Sie:
- erfolgreiche Abfragen (z. B. SELECT)
- blockierte Operationen (z. B. UPDATE oder DELETE)
Zeigen Sie mindestens zwei Beispiele für Fehlermeldungen, z. B.:
ERROR: permission denied for table customers
Erklären Sie kurz, warum diese Fehlermeldung auftritt.
4. Debugging-Aufgabe
Abschnitt betitelt „4. Debugging-Aufgabe“Beschreiben Sie für mindestens ein Szenario aus der Debugging-Aufgabe:
- welche Rechte falsch konfiguriert waren
- wie Sie den Fehler analysiert haben
- welche Änderung das Problem gelöst hat
Abgabeformat
Abschnitt betitelt „Abgabeformat“Die Abgabe erfolgt in Teams als:
- Markdown-Datei, PDF oder Textdokument
Dateiname:
permissions_northwind_<nachname>.pdf
Die Dokumentation sollte kurz und präzise sein (ca. 1–2 Seiten).