Aufgabe 11 - Benutzer und Rechte
Aufgabe 11 - Berechtigungskonzepte & Least Privilege in PostgreSQL
Abschnitt betitelt „Aufgabe 11 - Berechtigungskonzepte & Least Privilege in PostgreSQL“Worum geht es?
Abschnitt betitelt „Worum geht es?“In dieser Übung wird für einen Streamingdienstleister ein Least-Privilege-Rollenkonzept entworfen und umgesetzt (siehe Kapitel 5 - Benutzer und Rechte). Kern ist die Trennung von Ownership und Privileges. Im Expertenteil geht es um Default Privileges und Zugriff ausschließlich über eine Stored Procedure.
Was Sie dafür brauchen
Abschnitt betitelt „Was Sie dafür brauchen“- Kapitel 5 - Benutzer und Rechte.
- Ein PostgreSQL-Server und ein SQL-Editor.
Welche Kompetenzen Sie erwerben und zeigen
Abschnitt betitelt „Welche Kompetenzen Sie erwerben und zeigen“- Sie erklären Authentifizierung, Autorisierung und das Schichtenmodell.
- Sie entwerfen Gruppenrollen und trennen Ownership von Privilegien.
- Sie lösen das Default-Privileges-Problem für künftige Tabellen.
- Sie kapseln Schreibzugriff hinter einer Stored Procedure.
Pädagogische Einordnung
Abschnitt betitelt „Pädagogische Einordnung“- Reproduktion: die Zugriffskonzepte erklären (Teil A).
- Reorganisation und Transfer: Rollen anlegen und ein Schema härten (Teile B und C).
- Reflexion, Problemlösung und Urteilsbildung: Default Privileges und Prozedur-Kapselung lösen und beurteilen (Teil D).
Arbeitsaufträge
Abschnitt betitelt „Arbeitsaufträge“Die Übung ist auf etwa zwei Stunden ausgelegt. Teil D ist der Expertenteil.
Teil A - Konzepte
Abschnitt betitelt „Teil A - Konzepte“- Auf etwa einer halben Seite erläutern: Authentifizierung gegen Autorisierung; das Schichtenmodell (kann ein Benutzer trotz Tabellenrechten scheitern, wenn
CONNECToderUSAGEfehlen?); der Vorteil von Gruppenrollen gegenüber direkter Rechtevergabe.
Teil B - Rollen und Owner-Analyse
Abschnitt betitelt „Teil B - Rollen und Owner-Analyse“- Für drei Rollentypen je einen Steckbrief (typische SQL-Befehle DML/DDL, nötige Privilegien auf Datenbank-, Schema- und Objektebene): Migration-Role (Owner), Application-Service-Role (DML), Audit/Reporting-Role (Read-Only).
- Die Rollen in SQL anlegen und je einen Benutzer zuweisen (
migration_bot,app_user,report_bot). Zusätzliche Schemata und Tabellen anlegen (app_data,billing) und mit Testbefehlen zeigen, welche Rolle worauf zugreifen darf und welche Fehlermeldung sonst kommt. - Zum häufigen Fehler „Application-User als Owner” eine Analyse: mindestens ein PRO (warum Entwickler das oft so machen) und mindestens drei CON, besonders zu
DROPundALTER, die sich nicht mitREVOKEentziehen lassen.
Teil C - Hardened Schema (Billing)
Abschnitt betitelt „Teil C - Hardened Schema (Billing)“- Für den Bereich „Streaming-Abrechnung” mit sensiblen Rechnungsdaten festlegen, welche Rolle die Tabellen erstellt, und begründen, warum
app_userniemals Owner sein darf. - Die Befehle angeben, die nötig sind, damit
report_botüberhaupt die erste Zeile im Schemabillinglesen kann (CONNECT,USAGE,SELECT), und ausführen.
Teil D - Expertenteil: Default Privileges und Prozedur-Kapselung
Abschnitt betitelt „Teil D - Expertenteil: Default Privileges und Prozedur-Kapselung“-
Default Privileges: Zeigen Sie das Problem: Nach
GRANT SELECT ON ALL TABLES IN SCHEMA billing TO report_botlegt ein Admin späterinvoices_2026an, undreport_botkann sie nicht lesen. Erklären Sie warum und lösen Sie es mitALTER DEFAULT PRIVILEGES, sodass auch künftige Tabellen automatisch lesbar sind. Beweisen Sie die Lösung, indem Sie nach demALTER DEFAULT PRIVILEGESeine neue Tabelle anlegen und mitreport_botlesen.ALTER DEFAULT PRIVILEGES IN SCHEMA billingGRANT SELECT ON TABLES TO report_bot; -
Zugriff nur über eine Prozedur: Definieren Sie ein Szenario, in dem ein
api_usereine bestimmte Änderung ausführen darf, aber keinen direktenINSERT/UPDATE/DELETEauf der Tabelle hat. Legen Sie eine Stored Procedure (oder Function) mitSECURITY DEFINERan, geben Sieapi_usernurEXECUTEdarauf und entziehen Sie ihm alle direkten Schreibrechte. Beweisen Sie: der direkteUPDATEscheitert, der Aufruf der Prozedur gelingt. -
Recherche und Reflexion: Recherchieren Sie das Risiko von
WITH GRANT OPTIONundSUPERUSER-Accounts (auch in Cloud-Umgebungen wie AWS RDS) sowie ein Beispiel, wie begrenzte Rechte den Schaden einer SQL-Injection minimiert haben. Fassen Sie in vier bis fünf Sätzen zusammen, wie die Trennung von Ownership und Privilegien den Schaden im Ernstfall begrenzt.
Wissenscheck
Abschnitt betitelt „Wissenscheck“- Worin unterscheiden sich Authentifizierung und Autorisierung?
- Warum kann ein Benutzer trotz Tabellenrechten scheitern?
- Warum lassen sich
ALTERundDROPnicht perREVOKEentziehen? - Wozu dient
ALTER DEFAULT PRIVILEGES? - Wie erlaubt man eine Änderung nur über eine Prozedur, ohne direktes Schreibrecht zu geben?
- Ein strukturierter Bericht mit den Zugriffskonzepten, den Rollen-Steckbriefen samt Owner-Analyse, dem gehärteten Billing-Konzept und den realen Fallbeispielen.
- Eine SQL-Datei mit allen Rollen, Grants, Default Privileges, der Prozedur und den Test-/Fehlermeldungen.
HTL Villach, 2025-2026,
https://www.htl-villach.at