致命:用户 postgres aurora 的密码验证失败

FATAL: password authentication failed for user postgres aurora

如果我创建一个以 postgres 身份登录到根数据库的用户并创建一个用户...它不起作用。我做错了什么?

postgres=> CREATE ROLE myUser WITH LOGIN PASSWORD 'xxx';
CREATE ROLE
postgres=> GRANT CONNECT ON DATABASE myDatabase TO myUser;
GRANT
postgres=> GRANT USAGE ON SCHEMA public to myUser;
GRANT
postgres=> GRANT SELECT  ON ALL TABLES IN SCHEMA public TO myUser;
GRANT

当我进行身份验证时出现错误。 psql -h $dbURL -U myUser myDatabase

严重:用户 myUser

的密码验证失败

您可能需要检查是否有 .pgpass file present and inspect the environment variables,看看您是否设置了 PGPASSWORDPGPASSFILE。在任何这些情况下,psql 都不会提示输入密码,而是从文件或变量中获取密码 - 如果那里的内容不正确,它会给你确切的错误。

你可以

  1. 取消设置 PGPASSWORDPGPASSFILE 变量
  2. 删除 .pgpass 文件
  3. .pgpass 文件中删除与此连接对应的条目
  4. 更正 PGPASSFILE/PGPASSWORD 变量的值或 .pgpass 文件的内容
  5. 将 psql 与 -W switch 一起使用,使其忽略其他设置并始终提示输入密码
  6. 更改 pg_hba.conf 文件中的 host-based authentication 设置以更改身份验证方法或信任某种类型的连接

您创建的用户是“myuser”,因为 SQL 不在双引号内的标识符会忽略大小写,并折叠为小写。但是在命令行工具中不会忽略大小写,因此您试图以不存在的用户“myUser”身份登录。由于不存在的用户没有密码哈希,密码验证肯定失败。