How2-Tipps

PostgreSQL: Datenbank und Benutzer über die Konsole anlegen

PostgreSQL: Datenbank und Benutzer per Konsole anlegen – inkl. Rechtevergabe und wichtiger Hinweise zur Groß-/Kleinschreibung.

1 min Lesezeit
PostgreSQL: Datenbank und Benutzer über die Konsole anlegen

PostgreSQL gehört zu den leistungsfähigsten Open-Source-Datenbanksystemen und ist gerade im Backend-Bereich (z. B. mit Laravel, Python oder KI-Systemen) kaum wegzudenken. In diesem Beitrag zeige ich dir Schritt für Schritt, wie du über die Konsole eine neue Datenbank und einen Benutzer anlegst – inklusive Rechtevergabe und wichtiger Stolperfallen.

Voraussetzungen

Bevor du loslegst, solltest du sicherstellen:

  • PostgreSQL ist installiert
  • Der Dienst läuft (systemctl status postgresql)
  • Du hast Zugriff auf einen Benutzer mit Admin-Rechten (meist postgres)

Schritt 1: In die PostgreSQL-Konsole wechseln

Zuerst wechselst du auf den PostgreSQL-Systembenutzer:

``bash sudo -i -u postgres ``

Dann startest du die PostgreSQL-Konsole:

``bash psql ``

Du erkennst die erfolgreiche Anmeldung an der Eingabeaufforderung:

`` postgres=# ``

Schritt 2: Neuen Benutzer (Role) anlegen

In PostgreSQL heißt ein Benutzer Role. Erstelle einen neuen Benutzer mit Passwort:

``sql CREATE USER meinuser WITH PASSWORD 'sicherespasswort'; ``

👉 Optional kannst du dem Benutzer direkt mehr Rechte geben:

``sql ALTER USER meinuser CREATEDB; ``

Damit darf der Benutzer später selbst Datenbanken erstellen.

Schritt 3: Neue Datenbank erstellen

Jetzt legst du eine neue Datenbank an:

``sql CREATE DATABASE meinedb; ``

Schritt 4: Benutzer Rechte auf die Datenbank geben

Damit dein Benutzer auch wirklich Zugriff hat:

``sql GRANT ALL PRIVILEGES ON DATABASE meinedb TO meinuser; ``

Wichtiger Exkurs: Groß-/Kleinschreibung in PostgreSQL

Hier liegt eine der häufigsten Fehlerquellen in PostgreSQL.

👉 Standardverhalten

PostgreSQL wandelt alle Namen automatisch in Kleinbuchstaben um, wenn du keine Anführungszeichen verwendest:

``sql CREATE DATABASE MeineDB; ``

Intern wird daraus:

`` meinedb ``

👉 Groß-/Kleinschreibung erzwingen

Wenn du die Schreibweise exakt beibehalten willst, musst du doppelte Anführungszeichen verwenden:

``sql CREATE DATABASE "MeineDB"; CREATE USER "MeinUser" WITH PASSWORD 'passwort'; ``

❗ Der große Nachteil

Sobald du das tust, musst du IMMER exakt so darauf zugreifen:

``bash psql -U MeinUser -d MeineDB ❌ funktioniert NICHT psql -U "MeinUser" -d "MeineDB" ✅ funktioniert ``

Auch in SQL:

``sql SELECT FROM MeineTabelle; ❌ SELECT FROM "MeineTabelle"; ✅ ``

Best Practice (klare Empfehlung)

👉 Verwende immer:

  • nur Kleinbuchstaben
  • ggf. Unterstriche

``sql CREATE DATABASE meinedb; CREATE USER meinuser WITH PASSWORD 'passwort'; ``

Spart dir später sehr viele Probleme.

Schritt 5: Verbindung testen

Beende die aktuelle Sitzung:

``sql \q ``

Jetzt teste die Verbindung mit dem neuen Benutzer:

``bash psql -U meinuser -d meinedb -h localhost ``

Wenn alles passt, wirst du nach dem Passwort gefragt und kannst dich verbinden.

Alternative: Alles in einem Schritt (Quick Setup)

Für schnelle Setups kannst du alles kompakt erledigen:

``sql CREATE USER meinuser WITH PASSWORD 'sicherespasswort'; CREATE DATABASE meinedb OWNER meinuser; ``

👉 Vorteil: Der Benutzer ist direkt Eigentümer der Datenbank.

Best Practices (wichtig!)

Gerade im produktiven Betrieb solltest du folgende Punkte beachten:

  • Keinen Superuser verwenden
  • Starke Passwörter nutzen
  • Rechte nur minimal vergeben (Principle of Least Privilege)
  • Separate Benutzer pro Anwendung
  • Regelmäßige Backups einrichten
  • Keine Großbuchstaben in Namen verwenden

Bonus: Rollen & Datenbanken anzeigen

Alle Benutzer anzeigen:

``sql \du ``

Alle Datenbanken anzeigen:

``sql \l ``

Mit wenigen Befehlen kannst du in PostgreSQL:

  • Benutzer (Roles) erstellen
  • Datenbanken anlegen
  • Zugriffsrechte sauber vergeben
  • typische Fehler wie Groß-/Kleinschreibung vermeiden

Gerade der Umgang mit Namen ist ein Detail, das später viel Zeit kosten kann – wenn man es falsch macht.