文档首页/ 云数据库 RDS/ 故障排除/ RDS for PostgreSQL/ RDS for PostgreSQL通过应用程序访问数据库时提示不支持身份验证
更新时间:2024-10-24 GMT+08:00

RDS for PostgreSQL通过应用程序访问数据库时提示不支持身份验证

场景一

  • 场景描述

    当通过PostgreSQL的任何应用程序连接到RDS for PostgreSQL数据库时,如果客户端不支持scram-sha-256身份验证方法,会出现报错:

    Authentication method not supported (Received: 10)
  • 原因分析

    出现此问题的原因是使用的客户端版本较低,与数据库使用的加密算法不兼容导致的。

  • 解决方案
    1. 检查客户端或客户端驱动程序(如JDBC驱动程序),确保将其更新到最新版本,以确保支持最新的身份验证方法。

      如果仍然不支持最新的身份验证,执行下一步。

    2. 在实例的参数配置中,修改“password_encryption”参数值为“md5”。

      “password_encryption”参数修改后,需要重置密码才能生效。

    3. 如果以上方式都不生效,可以修改pg_hba,查看是否有配置认证方式为“scram-sha-256”,如果有则修改为“md5”,保存后重试连接。

场景二

  • 场景描述

    当数据库从低版本迁移到高版本后,业务无法连接数据库,报错如下:

    unsupported authentication method requested by the server: 10
  • 原因分析

    低版本实例的“password_encryption”参数值为“md5”,迁移到高版本后,高版本实例的“password_encryption”参数默认值为“scram-sha-256”,重新修改参数值为“md5”,由于未重置密码,导致密码认证方式失败,业务无法连接。

  • 解决方案

    “password_encryption”参数修改后,重置密码使之生效。

场景三

  • 场景描述

    使用JDBC应用程序连接到RDS for PostgreSQL数据库时,由于JDBC版本过低不支持scram-sha-256身份验证,在console错误日志中出现如下报错信息:

    unsupported frontend protocol 1234.5680: server supports 2.0 to 3.0
  • 原因分析

    使用JDBC连接数据库,由于JDBC版本过低,导致无法连接。

  • 解决方案

    下载并使用最新版本的JDBC。