open-how2 – Entdecke. Verstehe. Nutze.
Veröffentlicht am
How2-Tipps

PostgreSQL: Datenbank und Benutzer über die Konsole anlegen

Autor
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:

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.