【问题标题】:How to connect Oracle 18c server using oracle 10g server如何使用 oracle 10g 服务器连接 Oracle 18c 服务器
【发布时间】:2020-11-19 05:59:02
【问题描述】:

在使用 oracle 10g 连接 Oracle 18c 时出现类似错误 “ORA-28040:没有匹配的身份验证协议异常”。 我可以连接“SQL DEVELOPER”但无法连接“命令提示符”

【问题讨论】:

    标签: oracle oracle10g database-administration oracle18c


    【解决方案1】:

    不可能,见Client / Server Interoperability Support Matrix for Different Oracle Versions (Doc ID 207303.1)

    即使您设置了SQLNET.ALLOWED_LOGON_VERSION_...,连接也很可能会因另一个错误而失败。

    【讨论】:

    • 是的。要连接到 18c 服务器,连接的客户端必须至少为 11.2.0.3。
    【解决方案2】:

    甲骨文documentation 说:

    从早于版本 10g 的客户端连接到 Oracle 数据库失败,并出现错误 ORA-28040:没有匹配的身份验证协议。

    从 Oracle Database 18c 开始,SQLNET.ALLOWED_LOGON_VERSION 参数的默认值从 Oracle Database 12c (12.2) 中的 11 更改为 Oracle Database 18c 中的 12。不推荐使用此参数。

    SQLNET.ALLOWED_LOGON_VERSION 现在替换为SQLNET.ALLOWED_LOGON_VERSION_SERVERSQLNET.ALLOWED_LOGON_VERSION_CLIENT 参数。如果您没有在升级后的数据库中显式设置 SQLNET.ALLOWED_LOGON_VERSION_SERVER 参数,则来自 10g 之前版本的客户端的连接将失败,并出现错误 ORA-28040: No matching authentication protocol。

    看看有没有帮助。

    【讨论】:

      【解决方案3】:

      在 18c 中,默认的最低版本已从 11 更改为 12,SQLNET.ALLOWED_LOGON_VERSION 已弃用并替换为 SQLNET.ALLOWED_LOGON_VERSION_SERVERSQLNET.ALLOWED_LOGON_VERSION_CLIENT

      设置

      SQLNET.ALLOWED_LOGON_VERSION_SERVER=10 
      SQLNET.ALLOWED_LOGON_VERSION_CLIENT=10
      

      在您的 sqlnet.ora 中并重新加载侦听器 lsnrctl reload

      【讨论】:

        猜你喜欢
        • 2018-11-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-02
        • 1970-01-01
        相关资源
        最近更新 更多