
# RDS for PostgreSQL通过应用程序访问数据库时提示不支持身份验证
#### 场景一
- 场景描述 当通过PostgreSQL的任何应用程序连接到RDS for PostgreSQL数据库时，如果客户端不支持scram-sha-256身份验证方法，会出现报错：
  ```
  Authentication method not supported (Received: 10)
  ```
  
- 原因分析 出现此问题的原因是使用的客户端版本较低，与数据库使用的加密算法不兼容导致的。
  
- 解决方案
  1. 检查客户端或客户端驱动程序（如JDBC驱动程序），确保将其更新到最新版本，以确保支持最新的身份验证方法。 如果仍然不支持最新的身份验证，执行下一步。
     
  
  2. 在实例的参数配置中，修改"password_encryption"参数值为"md5"。
     ![](https://support.huaweicloud.com/trouble-rds-pg/public_sys-resources/notice_3.0-zh-cn.png)
     "password_encryption"参数修改后，需要重置密码才能生效。
     
  
  3. 如果以上方式都不生效，可以[修改pg_hba](https://support.huaweicloud.com/usermanual-rds-pg/rds_pg_05_0027.html)，查看是否有配置认证方式为"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版本过低，导致无法连接。
  
- 解决方案 [下载](https://jdbc.postgresql.org/download/)并使用最新版本的JDBC。
  
 
