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.