KB4537072 - 修复:如果使用 Oracle 数据库 12.2 或更高版本,在 SQL Server 2019 中针对 Oracle 数据库创建外部表可能会失败

应用对象
SQL Server 2019 on Linux SQL Server 2019 on Windows

症状

假设您为 Oracle 数据库 12.2 或更高版本创建了一个外部数据源。 尝试在 SQL Server 2019 中针对该数据源创建外部表时,可能会收到以下错误:

消息 105082,级别 16,状态 1,行 LineNumber

105082;通用 ODBC 错误:[Microsoft][ODBC Oracle Wire 协议驱动程序][Oracle]ORA-28040:没有匹配的身份验证协议 其他错误 <2>:ErrorMsg:[Microsoft][ODBC Oracle Wire 协议驱动程序][Oracle]ORA-28040:没有匹配的身份验证协议,SqlState:HY000,NativeError:28040。
      

原因

出现此问题的原因是 SQL Server 2019 未使用最新的 ODBC 驱动程序版本连接到 Oracle 数据库,并且当前驱动程序未配置新的安全机制。

状态

Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。

解决方法

此修补程序包含在 SQL Server 的以下累积更新中:

关于 SQL Server 的累积更新:

SQL Server 的每个新累积更新都包含上一个累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:

解决方法

若要解决此问题,可以编辑 Oracle 服务器上的 sqlnet.ora 文件以添加以下内容:

sqlnet.allowed_logon_version_server=8

参考资料

了解 Microsoft 用于描述软件更新的术语。

      

第三方信息免责声明本文讨论的第三方产品是由独立于 Microsoft 的公司制造的。 Microsoft 不对这些产品的性能或可靠性作任何默示或明示的担保。