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
student
mit Login und Passwort. - Vergib das Recht
CREATEDB
anstudent
. - Erstelle eine Gruppe
entwickler
und fügestudent
hinzu. - Melde dich als
student
an:psql -U student -d postgres
- Bonus: Prüfe mit
\du
, obstudent
Mitglied vonentwickler
ist.
✅ 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