In MySQL/MariaDB bist du es gewohnt, mit Benutzern zu arbeiten (CREATE USER, GRANT ...).
PostgreSQL geht einen Schritt weiter: Es verwendet Rollen (roles).
👉 Eine Rolle kann entweder:
- wie ein Benutzer agieren (login-fähig),
- oder wie eine Gruppe agieren (nur Rechte verwalten).
🔹 Rollen anzeigen
Nach der Installation existiert nur der Standard-User postgres.
In psql kannst du dir alle Rollen anzeigen lassen:
\du
Beispielausgabe:
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
🔹 Neue Rolle erstellen
Login-fähiger Benutzer
CREATE ROLE hendrik LOGIN PASSWORD 'geheim';
👉 Damit hast du einen Benutzer hendrik, der sich anmelden kann.
Rolle ohne Login (Gruppe)
CREATE ROLE admins;
👉 Kann keine eigene Verbindung aufbauen, aber anderen Rollen zugewiesen werden.
🔹 Rechte vergeben
Rollen können Rechte bekommen, z. B.:
ALTER ROLE hendrik CREATEDB;
👉 Erlaubt der Rolle hendrik, eigene Datenbanken zu erstellen.
🔹 Rolle Mitglied einer Gruppe machen
GRANT admins TO hendrik;
👉 Jetzt ist hendrik Mitglied der Rolle admins.
🔹 Benutzer wechseln
Aus der Linux-Shell:
psql -U hendrik -d postgres
👉 -U = Benutzer, -d = Datenbank
🔹 Unterschiede zu MySQL/MariaDB
| Bereich | MySQL/MariaDB | PostgreSQL |
|---|---|---|
| Benutzer | CREATE USER |
CREATE ROLE ... LOGIN |
| Gruppen | nicht direkt unterstützt | Rollen können Gruppen bilden |
| Rechte | GRANT SELECT ON db.* TO user |
GRANT SELECT ON TABLE ... TO role |
| Adminrechte | GRANT ALL PRIVILEGES |
SUPERUSER, CREATEDB, CREATEROLE
|
👉 Postgres ist flexibler, weil Rollen sowohl Benutzer als auch Gruppen sein können.
🔹 Übungen
- Erstelle die Rolle
studentmit Login und Passwort. - Vergib das Recht
CREATEDBanstudent. - Erstelle eine Gruppe
entwicklerund fügestudenthinzu. - Melde dich als
studentan:psql -U student -d postgres
- Bonus: Prüfe mit
\du, obstudentMitglied vonentwicklerist.
✅ Zusammenfassung
- PostgreSQL nutzt Rollen statt reiner Benutzer.
- Rollen können Login-fähig sein oder nur Rechte verwalten.
- Rechte und Gruppenmitgliedschaften sind sehr flexibel.
- Unterschied zu MySQL: Postgres erlaubt ein feineres Rollenmodell.
👉 Im nächsten Kapitel lernst du, wie man Datenbanken & Tabellen erstellt – und worin sich PostgreSQL von MySQL unterscheidet.
📚 Inhaltsverzeichnis
👉 psql Kapitel 1: Installation & Anmeldung mit psql
👉 psql Kapitel 2: Benutzer & Rollen in PostgreSQL
👉 psql Kapitel 3: Datenbanken & Tabellen erstellen
👉 psql Kapitel 4: CRUD-Befehle (SELECT, INSERT, UPDATE, DELETE)
👉 psql Kapitel 5: Schlüssel & Constraints in PostgreSQL
👉 psql Kapitel 6: Indizes & Performance
👉 psql Kapitel 7: Erweiterungen & Spezialfunktionen
👉 psql Kapitel 8: Backups & Restore in PostgreSQL
⭐ Bonus-Kapitel
👉 psql Kapitel 9 (Bonus): Admin-Tipps & Best Practices für PostgreSQL
