- Veröffentlicht am
- • How2-Tipps
PostgreSQL: Datenbank und Benutzer über die Konsole anlegen
- Autor
-
-
- Benutzer
- tmueller
- Beiträge dieses Autors
- Beiträge dieses Autors
-
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:
sudo -i -u postgres
Dann startest du die PostgreSQL-Konsole:
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:
CREATE USER meinuser WITH PASSWORD 'sicherespasswort';
👉 Optional kannst du dem Benutzer direkt mehr Rechte geben:
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:
CREATE DATABASE meinedb;
Schritt 4: Benutzer Rechte auf die Datenbank geben
Damit dein Benutzer auch wirklich Zugriff hat:
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:
CREATE DATABASE MeineDB;
Intern wird daraus:
meinedb
👉 Groß-/Kleinschreibung erzwingen
Wenn du die Schreibweise exakt beibehalten willst, musst du doppelte Anführungszeichen verwenden:
CREATE DATABASE "MeineDB";
CREATE USER "MeinUser" WITH PASSWORD 'passwort';
❗ Der große Nachteil
Sobald du das tust, musst du IMMER exakt so darauf zugreifen:
psql -U MeinUser -d MeineDB ❌ funktioniert NICHT
psql -U "MeinUser" -d "MeineDB" ✅ funktioniert
Auch in SQL:
SELECT * FROM MeineTabelle; ❌
SELECT * FROM "MeineTabelle"; ✅
Best Practice (klare Empfehlung)
👉 Verwende immer:
- nur Kleinbuchstaben
- ggf. Unterstriche
CREATE DATABASE meinedb;
CREATE USER meinuser WITH PASSWORD 'passwort';
Spart dir später sehr viele Probleme.
Schritt 5: Verbindung testen
Beende die aktuelle Sitzung:
\q
Jetzt teste die Verbindung mit dem neuen Benutzer:
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:
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:
\du
Alle Datenbanken anzeigen:
\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.