我对 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 中创建用户,这个用户也出现在用户列表中,但我再次无法以这些用户的身份登录。
感谢您提供的任何帮助。
这只是一个案例折叠问题。您正在尝试连接,myUser但由于大小写折叠规则,您myuser以小写形式创建,如\du输出所示。根据文档:
引用标识符也使其区分大小写,而未引用的名称始终折叠为小写。
要myUser使用这种确切的情况创建,请将其括在双引号中,如下所示:
CREATE USER "myUser" WITH SUPERUSER PASSWORD 'password';
Run Code Online (Sandbox Code Playgroud)
然后调用psql -U myUser ...将起作用。
或者,不要重新创建用户,而是始终以小写形式引用它。
| 归档时间: |
|
| 查看次数: |
16820 次 |
| 最近记录: |