it-swarm.com.de

postgresql Anmeldung mit erstellten Benutzern nicht möglich

Ich bin sehr neu in postgreSQL, aber mit SQL ziemlich vertraut.

Ich habe kürzlich postgreSQL unter Windows 10 installiert. Ich habe die Start-Tutorials durchgearbeitet und ein paar DBs erstellt, mit denen ich herumspielen kann. Ich kann mich mit dem Postgres-Konto mit dem Befehl ganz gut anmelden

psql -U postgres -d DatabaseName

Bisher konnte ich jedoch keinen neuen Benutzer zum Anmelden erstellen.

Ich habe den Befehl ausprobiert

CREATE USER myUser WITH SUPERUSER PASSWORD 'password';

Wenn ich das mache, erstellt es den Benutzer. Ich kann dies mit dem Befehl\du sehen:

Role name  |   List of Attributes                      | Member of
postgres   | Superuser, Create Role, Create DB, yada...| {}
myuser     | Superuser                                 | {}

Ich versuche dann\q und melde mich mit meinem neuen Benutzer an und erhalte Folgendes:

psql -U myUser -d Database
Password for myUser: password
psql: FATAL: password authentication failed for "myUser"

Ich habe auch versucht, einen Benutzer von cmd zu erstellen. Dieser Benutzer wurde ebenfalls in der Liste der Benutzer angezeigt, konnte sich jedoch erneut nicht als diese Benutzer anmelden.

Vielen Dank für jede Hilfe, die Sie anbieten können.

6
Aserian

Es ist nur ein Fall Faltproblem. Sie versuchen, eine Verbindung mit myUser herzustellen, haben jedoch aufgrund von Regeln zum Falten von Groß- und Kleinschreibung myuser in Kleinbuchstaben als \du Ausgabe zeigt. Per Dokumentation :

Wenn Sie einen Bezeichner zitieren, wird auch zwischen Groß- und Kleinschreibung unterschieden, während nicht zitierte Namen immer in Kleinbuchstaben gefaltet werden.

Um myUser mit genau diesem Fall zu erstellen, schließen Sie es in doppelte Anführungszeichen ein, wie in:

CREATE USER "myUser" WITH SUPERUSER PASSWORD 'password';

Dann der Aufruf psql -U myUser ... wird funktionieren.

Alternativ können Sie den Benutzer nicht neu erstellen, sondern immer in Kleinbuchstaben darauf verweisen.

5
Daniel Vérité