.Net Core迁移DigitalOcean PostgreSQL报28000无pg_hba.conf条目怎么解决
错误原因
该28000错误由以下两个原因之一导致,优先排查第一个:
- DigitalOcean托管PostgreSQL默认强制要求SSL连接,你当前的连接字符串未开启SSL配置,因此命中pg_hba.conf的非SSL连接拒绝规则
- 你发起请求的公网IP
XXX.xx.xx.192未被添加到数据库集群的可信访问白名单中,pg_hba.conf没有对应允许条目
解决方案
第一步:修改连接字符串开启SSL
在原有连接字符串中新增两个SSL相关配置项,修改后的连接字符串如下:
var conn = "User ID=test;Password=testPassword;Server=db-postgresql-tor1-xxxxx-do-user-xxxxxxxxx-0.b.db.ondigitalocean.com;Port=25060;Database=TestAuthentication;Integrated Security=false;Pooling=true;SSL Mode=Require;Trust Server Certificate=true;";
新增参数说明:
SSL Mode=Require:强制启用SSL连接,匹配DigitalOcean托管PostgreSQL的默认安全要求Trust Server Certificate=true:开发环境下可加该参数跳过证书链校验,不影响传输加密安全性;生产环境建议导入DigitalOcean官方提供的数据库证书后移除该参数
第二步:配置IP白名单(若修改连接字符串后仍报错)
- 登录DigitalOcean控制台,进入对应PostgreSQL集群的管理页面
- 找到「可信来源(Trusted Sources)」配置项
- 将报错提示的IP
XXX.xx.xx.192添加到可信来源列表,保存后等待1分钟左右生效
配置完成后重新执行数据库迁移命令即可正常执行操作。
内容的提问来源于stack exchange,提问作者Marox587
相关产品推荐
相关产品推荐

