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

ADW连Oracle 11.2.0.1报ORA-28040,同版本19c连接正常

问题分析与解决方案

为什么ADW报错而传统19c正常?

Oracle自治数据仓库(ADW)出于安全合规性考虑,默认的认证协议配置比传统安装的19c数据库更严格:

  • 传统19c数据库默认的SQLNET.ALLOWED_LOGON_VERSION_CLIENT和SQLNET.ALLOWED_LOGON_VERSION_SERVER参数值通常为11,允许与11g版本的数据库使用旧版认证协议完成身份验证。
  • ADW默认将这两个参数设置为更高的数值(如12或12c),直接禁用了11g及更早版本依赖的认证协议,因此连接11.2.0.1数据库时会触发ORA-28040: No matching authentication protocol错误。

如何配置ADW连接Oracle 11.2.0.1?

你需要调整ADW的初始化参数,允许使用兼容11g的认证协议,步骤如下:

方法1:通过PL/SQL命令修改参数

在ADW中执行以下PL/SQL代码,调整认证版本限制:

-- 设置客户端允许的最低认证版本
EXEC DBMS_CLOUD_ADMIN.SET_PARAMETER(
  PARAMETER_NAME => 'SQLNET.ALLOWED_LOGON_VERSION_CLIENT',
  PARAMETER_VALUE => '11'
);

-- 设置服务器允许的最低认证版本
EXEC DBMS_CLOUD_ADMIN.SET_PARAMETER(
  PARAMETER_NAME => 'SQLNET.ALLOWED_LOGON_VERSION_SERVER',
  PARAMETER_VALUE => '11'
);

方法2:通过OCI控制台修改参数

  1. 登录OCI控制台,进入你的ADW实例详情页面。
  2. 在左侧导航栏选择“初始化参数”。
  3. 在搜索框中分别查找SQLNET.ALLOWED_LOGON_VERSION_CLIENT和SQLNET.ALLOWED_LOGON_VERSION_SERVER。
  4. 将两个参数的数值修改为11,保存并应用更改。

验证配置

参数修改完成后,重新创建或使用已有的数据库链接测试连接:

-- 示例:创建数据库链接
CREATE DATABASE LINK adw_to_11g
CONNECT TO remote_user IDENTIFIED BY remote_password
USING '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=your_private_endpoint)(PORT=1521))(CONNECT_DATA=(SID=your_11g_sid)))';

-- 测试查询
SELECT * FROM dual@adw_to_11g;

注意:降低认证版本会带来一定的安全风险,建议在完成必要的业务操作后,及时将参数恢复为默认值,或考虑升级目标11.2.0.1数据库至更高版本以提升安全性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 21:09:25