createuser ohne Password-Prompt?

Hallo!
Gibt es eine Möglichkeit durch createuser einen Benutzer mit Passwort zu erstellen, ohne, dass das Passwort durch einen Prompt abgefragt wird?

Ich nehme mal an, Du meinst den Prompt für das Passwort des neuen Benutzers.

Wenn Du es via psql und einem SQL Skript machst, kannst Du das Passwort beim Anlegen des Benutzers angeben:

create user arthur password 'dent';

Ja, sorry, das Passwort des neuen Benutzers meinte ich.

Ich habe eine absolut komplett leere Datenbank. Da muss ich doch erst einen Benutzer anlegen, bevor ich ein solches SQL-Skript ausführen dürfte, oder nicht?

Du hast bereits den “postgres” Nutzer.

Nein, den Super-User (typischerweise “postgres”) gibt es immer der wird beim Anlegen der Datenbank mittels initdb erzeugt.
Das Skript würdest Du dann als Super-User ausführen

Auch wenn absolut nichts in der Datenbank steht? Ich lege eigentlich alles erst an…
Welches Passwort hat denn der postgres User?

Bei mir läuft das aktuell so:

@echo off
echo Cleaning data folder …
rmdir /s /q data
echo Initializing db …
SET PG_RESTRICT_EXEC=1
bin\initdb -D data
echo Setting up privileges …
echo local all all trust >> data\pg_hba.conf
echo Starting postmaster …
bin\pg_ctl -D “data” start
echo Waiting postmaster startup …
ping 127.0.0.1 -n 7 > %TEMP%\ping.log
echo Creating postgres User …
bin\createuser postgres -s -d -r -P

Gar kein Passwort. Der Zugang wird über die Datei pg_hba.conf geregelt.

Username und Passwort des Superusers kannst Du bei initdb mit angeben.

Ok, den Superuser leg ich jetzt beim initdb mit an, allerdings versucht er dann den Befehl zum Anlegen eines Benutzers
bin\psql -c “CREATE USER theusername password ‘thepassword’;”
in die Datenbank des aktuellen Windows-Benutzers einzutragen… Daraufhin bekomme ich einige Fehler:
database “windowsuser” does not exist
role “windowsuser” does not exist

Dann musst Du psql sagen mit welchem Benutzer es sich auf welche Datenbank verbinden soll.

Ist alles im Handbuch beschrieben (oder einfach über psql --help)

Ok, das macht Sinn… :wink:

Danke!