【问题标题】:Connecting ColdFusion 8 to Oracle 12c将 ColdFusion 8 连接到 Oracle 12c
【发布时间】:2019-09-19 12:13:34
【问题描述】:

我正在尝试从 ColdFusion 8 的基本安装连接到 Oracle 12c 数据库。它目前与 Oracle 11g 连接没有问题。

我收到以下错误:

数据源的连接验证失败:test
java.sql.SQLException:[Macromedia][Oracle JDBC 驱动程序][Oracle]ORA-28040:没有匹配的身份验证协议
根本原因是:java.sql.SQLException: [Macromedia][Oracle JDBC Driver][Oracle]ORA-28040: No matching authentication protocol

【问题讨论】:

  • 纯属猜测,但可能是驱动问题。
  • 升级驱动程序应该可以工作,但我必须再次戴上我的恐惧贩子帽子:我认为最大的问题是您正在运行 ColdFusion 8。那个版本非常过时并且非常容易受到各种外部剥削。您正在更新 Oracle(它本身并不便宜),因此您不应忽视 ColdFusion。或者可能运行与 CF8 兼容的老年操作系统。我知道升级 CF 可能不在您的职责范围内,但 CF8 会引发大量麻烦(对您和您的组织而言),而现代版本的 CF 或 Lucee 可以轻松解决这些问题。
  • 升级 CF8 和 Oracle 都不是我能控制的。我不能改变系统,或者底层架构。想笑吗?服务器是 Windows 2008,Service Pack 1。它是在 2016 年设置的。是的,构建系统的乐于助人的人一开始就使用过时的技术。我们正在使用 Oracle 11g 运行 CF8,我需要连接到系统中的另一个数据库,即 12c。

标签: oracle jdbc coldfusion database-connection


【解决方案1】:

主要问题是旧版本的驱动程序将无法连接 12c 服务器。在 Oracle 12.1 中,SQLNET.ALLOWED_LOGON_VERSION 参数的默认值设置为 11。这意味着使用 11g 之前的驱动程序的数据库客户端无法对 12.1 数据库服务器进行身份验证,除非 SQLNET.ALLOWED_LOGON_VERSION 参数设置为 @ 中的旧默认值 8 987654324@

SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 8
SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8

请注意,SQLNET.ALLOWED_LOGON_VERSION 在 12c 中已被弃用。

查看以下链接了解更多信息

https://www.oracleracexpert.com/2019/01/ora-28040-no-matching-authentication.html

【讨论】:

    【解决方案2】:

    ColdFusion 8 Enterprise 附带的驱动程序不支持 Oracle 12c。您可以尝试使用不同的驱动程序,但即使它们确实能够连接,也可能会遇到其他问题。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-09
    • 2018-07-11
    • 2020-12-02
    • 1970-01-01
    • 1970-01-01
    • 2014-05-18
    • 2016-08-07
    • 2018-07-18
    相关资源
    最近更新 更多