postgresql 无法使用创建的用户登录

Ase*_*ian 7 postgresql

我对 postgreSQL 很陌生,但对 SQL 非常熟悉。

我最近在 Windows 10 上安装了 postgreSQL。我浏览了启动教程并制作了一些 DB 来处理。我可以使用命令登录 postgres 帐户

psql -U postgres -d DatabaseName
Run Code Online (Sandbox Code Playgroud)

但是,到目前为止,我一直无法创建一个新用户来登录。

我试过命令

CREATE USER myUser WITH SUPERUSER PASSWORD 'password';
Run Code Online (Sandbox Code Playgroud)

当我这样做时,它会创建用户。我可以用 \du 命令看到这一点:

Role name  |   List of Attributes                      | Member of
postgres   | Superuser, Create Role, Create DB, yada...| {}
myuser     | Superuser                                 | {}
Run Code Online (Sandbox Code Playgroud)

然后我尝试 \q 并使用我的新用户登录并获得以下信息:

psql -U myUser -d Database
Password for myUser: password
psql: FATAL: password authentication failed for "myUser"
Run Code Online (Sandbox Code Playgroud)

我也尝试从 cmd 中创建用户,这个用户也出现在用户列表中,但我再次无法以这些用户的身份登录。

感谢您提供的任何帮助。

Dan*_*ité 5

这只是一个案例折叠问题。您正在尝试连接,myUser但由于大小写折叠规则,您myuser以小写形式创建,如\du输出所示。根据文档

引用标识符也使其区分大小写,而未引用的名称始终折叠为小写。

myUser使用这种确切的情况创建,请将其括在双引号中,如下所示:

CREATE USER "myUser" WITH SUPERUSER PASSWORD 'password';
Run Code Online (Sandbox Code Playgroud)

然后调用psql -U myUser ...将起作用。

或者,不要重新创建用户,而是始终以小写形式引用它。