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

  1. Erstelle die Rolle student mit Login und Passwort.
  2. Vergib das Recht CREATEDB an student.
  3. Erstelle eine Gruppe entwickler und füge student hinzu.
  4. Melde dich als student an:
    psql -U student -d postgres
  5. Bonus: Prüfe mit \du, ob student Mitglied von entwickler 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