You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Oracle RDS报ORA-28040错误如何配置SQLNET.ALLOWED_LOGON_VERSION参数

ORA-28040报错适配AWS Oracle RDS的解决方案

参数支持说明

AWS Oracle RDS支持配置兼容低版本认证协议的参数,但是无法直接修改实例底层的sqlnet.ora文件,需要通过RDS提供的自定义DB参数组能力完成配置。
注意Oracle 12c及以上版本已经将原SQLNET.ALLOWED_LOGON_VERSION参数拆分为服务端、客户端两个独立参数,你需要同时配置SQLNET.ALLOWED_LOGON_VERSION_SERVER和SQLNET.ALLOWED_LOGON_VERSION_CLIENT两个参数值为8,才能兼容Java 8自带的旧版JDBC驱动的认证逻辑。

具体操作步骤

  • 登录AWS RDS控制台,进入左侧菜单栏的「参数组」页面,创建新的自定义参数组,参数组家族选择与你现有Oracle 19c RDS实例匹配的版本,填写自定义的名称和描述后保存。
  • 进入刚创建的自定义参数组详情页,分别搜索SQLNET.ALLOWED_LOGON_VERSION_SERVER和SQLNET.ALLOWED_LOGON_VERSION_CLIENT两个参数,将二者的值都修改为8,保存参数变更。
  • 进入目标Oracle RDS实例的详情页,点击「修改」按钮,在「数据库选项」区域的「DB参数组」下拉框中,选择你刚创建的自定义参数组,保存修改时选择立即应用(该操作会触发RDS实例重启,请在业务低峰期执行)。
  • 实例重启完成后,登录Oracle数据库,重置你用于业务连接的用户密码,触发数据库生成兼容低版本认证协议的密码哈希,执行SQL语句:
    ALTER USER 你的业务用户名 IDENTIFIED BY 你的业务密码;
  • 回到同子网的EC2实例,运行Java 8客户端代码验证连接,即可解决ORA-28040报错。

无RDS配置变更的备选方案

如果你不想调整RDS实例的安全配置,可以直接升级Java项目的Oracle JDBC驱动版本到ojdbc8 19c及以上,新版驱动兼容Oracle 19c默认的高安全级认证协议,不需要修改任何RDS端配置即可正常连接。


内容的提问来源于stack exchange,提问作者Pavana karanth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 23:54:03