在面的图片中主要 做了:
- 创建用户usera 并设置密码usera
- 创建usera的db useradb
- 将useradb 授权给usera
- 退出postgres用户,然后使用usera账号登录
- select pg_user看到usera 用户已经创建成功
D:\DevTools\postgresql\16\pgAdmin 4\runtime>psql -U usera -d useradb
psql: error: connection to server at "localhost" (::1), port 5432 failed: 致命错误: 用户 "usera" Password 认证失败
在pg的配置文件pg_hba.conf 配置了允许 所有用户对所有db的连接,更新配置后重启服务.
且用户usera的创建是在 配置更新重启之后.
问题
- 为什么会出现认证错误
- 正常情况下输入
psql -U usera -d useradb
命令 后应该要提示输入密码的, 咋密码没让输入就报错了?
补充问题
从下面的图片看出来, psql -U usera -d useradb
命令 应该是匹配到了 配置文件中的规则
请不要使用截图代替纯文本内容。你应该使用纯文本配合 markdown 高亮描述你的问题
使用:
确保你的
password
加密算法是scram-sha-256
而不是md5
,否则你得把pg_hba.conf
中的METHOD
字段改为md5
才会起作用。而password_encryption
默认值从14
以后的版本才改为scram-sha-256
,之前都是md5
,如果你的 postgresql 从老版本升级而来,或者拷贝了某些老版本的配置,那么可能这个值是md5
而非默认的scram-sha-256