迁移PostgreSQL至AWS并升级时遇SQLSTATE[08006]认证错误求助
PostgreSQL 9.6迁移至AWS RDS 15认证问题解答
你遇到的 SQLSTATE[08006] [7] authentication method 10 not supported 错误,确实是因为本地PostgreSQL 9.6仅支持md5认证,而AWS RDS 15默认使用SCRAM-SHA-256认证(对应方法编号10),两端认证机制不匹配导致的。下面针对你的问题逐一解答:
1. 数据库迁至AWS后,本地服务器是否仍需安装PostgreSQL?
- 不需要。迁移完成后,所有业务访问直接指向AWS上的PostgreSQL 15实例即可。本地的PostgreSQL 9.6可以停止服务甚至卸载,除非你还有其他依赖本地数据库的业务需求。
2. 仅将加密方式从md5改为scram是否可行?
分两种场景来看:
- 本地客户端连接AWS实例:仅修改本地配置没用,认证方式由服务器端(AWS RDS)决定。由于PostgreSQL 9.6的客户端不支持SCRAM,你有两个选择:
- 升级本地PostgreSQL客户端到10+版本(10及以上开始支持SCRAM);
- 临时将AWS RDS的认证方式改为md5(不推荐,安全性较低),完成连接后再改回SCRAM。
- 迁移过程中从本地9.6导出数据到AWS 15:本地9.6的
pg_dump工具无法连接SCRAM认证的AWS实例,同样需要升级本地pg_dump到10+版本,或者临时调整AWS RDS的认证方式为md5完成迁移。
3. 连接认证机制说明
- md5:PostgreSQL旧版本默认认证方式,将密码与用户名拼接后做md5哈希传输,安全性低,易被彩虹表破解。
- SCRAM-SHA-256:PostgreSQL 10引入的安全认证机制,采用挑战-响应式交互,不会直接传输哈希密码,能有效防止密码泄露和重放攻击,是当前推荐的认证方式。
- 版本兼容性:PostgreSQL 9.6及更早版本的客户端/服务器均不支持SCRAM,10及以上版本才提供支持。这就是旧版本客户端连接新版本SCRAM认证服务器时出现错误的核心原因。
内容的提问来源于stack exchange,提问作者fractal5
相关产品推荐
相关产品推荐

