Zum Inhalt springen

Aufgabe 12 - Benutzer und Rechte mit Northwind

Zu Zen-Modus wechseln

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

  1. Erstellen Sie eine neue Datenbank mit dem Namen
northwind_permissions
  1. 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.

BenutzerAufgabe im Unternehmen
sales_userarbeitet im Vertrieb
inventory_userverwaltet Produkte
report_usererstellt Auswertungen
  1. Legen Sie drei neue Datenbankbenutzer mit den oben genannten Namen an.
  2. Jeder Benutzer muss sich an der Datenbank anmelden können.
  3. Verwenden Sie für alle Benutzer ein Passwort.
  • 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?

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.

Überprüfen Sie, ob der Zugriff funktioniert.

  • Funktioniert die Abfrage direkt nach dem Anlegen des Users?
  • Falls nicht: Warum?
  • Was sagt das über die Standardrechte in PostgreSQL aus?

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.

  1. Konfigurieren Sie passende Privilegien für diese Tabellen.
  2. Melden Sie sich anschließend als sales_user an.
  3. Testen Sie folgende Operationen:
    • Daten lesen
    • Daten ändern
    • Daten löschen
  • Welche Operationen funktionieren?
  • Welche Operationen werden blockiert?
  • Warum ist dieses Verhalten aus Sicherheitsgründen sinnvoll?

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.

  1. Konfigurieren Sie passende Rechte für:
    • products
    • suppliers
  2. Testen Sie anschließend:
    • das Lesen von Produktdaten
    • das Aktualisieren von Produktdaten
    • den Zugriff auf andere Tabellen des Systems
  • Welche Abfragen funktionieren?
  • Welche werden blockiert?
  • Warum ist diese Einschränkung aus Datenschutzsicht wichtig?

Der Benutzer report_user arbeitet im Controlling.

Dieser Benutzer soll:

  • alle Tabellen lesen können
  • aber keine Änderungen durchführen
  1. Konfigurieren Sie passende Rechte für diese Rolle.
  2. Testen Sie anschließend:
    • SELECT-Abfragen
    • INSERT-, UPDATE- und DELETE-Befehle
  • Warum benötigen Reporting-Systeme typischerweise nur Leserechte?
  • Welche Risiken entstehen, wenn Reporting-Benutzer Schreibrechte erhalten?

PostgreSQL stellt Systemviews bereit, mit denen sich Berechtigungen analysieren lassen.

  1. Finden Sie eine Systemview, die Tabellenprivilegien auflistet.
  2. Analysieren Sie die Rechte auf der Tabelle customers.
  3. Überprüfen Sie, welche Rechte sales_user besitzt.
  • Welche Privilegien hat sales_user auf der Tabelle customers?
  • Welche Benutzer haben Zugriff auf products?

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.

Ein Mitarbeiter aus dem Vertrieb meldet:

ERROR: permission denied for table customers

  1. Versuchen Sie, diese Situation nachzustellen.
  2. Analysieren Sie, welche Rechte dem Benutzer fehlen.
  3. Beheben Sie das Problem.
  • Welche Berechtigung fehlt?
  • Wie kann man das Problem systematisch diagnostizieren?

Der Benutzer inventory_user versucht, ein Produkt zu aktualisieren und erhält:

ERROR: permission denied for table products

  1. Analysieren Sie, warum das Update fehlschlägt.
  2. Überprüfen Sie die vergebenen Rechte.
  3. Korrigieren Sie die Konfiguration.
  • Welche Rechte sind für ein Update erforderlich?
  • Welche Rechte hatte der Benutzer tatsächlich?

Der Benutzer report_user kann plötzlich Daten löschen.

Dies stellt ein Sicherheitsproblem dar.

  1. Analysieren Sie, welche Privilegien vergeben wurden.
  2. Entfernen Sie die unnötigen Rechte.
  3. Stellen Sie sicher, dass der Benutzer nur noch Leserechte besitzt.
  • Welche Rechte sind für DELETE erforderlich?
  • Wie können solche Fehlkonfigurationen entdeckt werden?

In größeren Systemen werden Rechte selten direkt an Benutzer vergeben.

Stattdessen werden Rollen als Gruppen verwendet.

  1. Entwerfen Sie eine Rolle für den Vertrieb.
  2. Vergeben Sie die notwendigen Rechte an diese Rolle.
  3. Ordnen Sie anschließend sales_user dieser Rolle zu.
  • 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:

Beschreiben Sie kurz:

  • welche Benutzer Sie angelegt haben
  • welche Rollen Sie eventuell erstellt haben
  • welche Rechte jede Rolle bzw. jeder Benutzer besitzt

Zeigen Sie anhand geeigneter SQL-Abfragen oder Systemviews:

  • welche Privilegien sales_user besitzt
  • welche Privilegien inventory_user besitzt
  • welche Privilegien report_user besitzt

Screenshots oder Konsolenausgaben sind ausreichend.

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.

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

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).