MS SQL 中的 Sybase 链接服务器连接失败但 ODBC 测试连接成功

Sybase Linked Server in MS SQL failes to connect but ODBC Test connection succeeded

在我们的数据库服务器中,我们安装了以下版本的 Microsoft SQL:

Microsoft SQL Server 2016 (SP2-CU2-GDR) (KB4458621) - 13.0.5201.2 (X64) Aug 18 2018 07:38:15 Copyright (c) Microsoft Corporation Enterprise Edition: Core-based Licensing (64-bit) on Windows Server 2012 R2 Standard 6.3 (Build 9600: ) (Hypervisor)

在同一台服务器上,我们还安装了 Sybase 16 Driver

使用 Adaptive Server Enterprise,我们创建了 ODBC 64 位连接(因为 MS SQL 是 64 位的)并在测试连接后,提示显示连接和凭据都很好。

然后我使用以下脚本在 MS SQL 中创建了一个链接服务器

当然不是证书的实际值

DECLARE @ls_servername varchar(128) = N'SybaseSERVER'
DECLARE @ls_serverproduct varchar(128) = N'sybase'
DECLARE @ls_provider varchar(128) = N'MSDASQL'
DECLARE @ls_datasource varchar(128) = N'SybaseSERVER'
DECLARE @ls_catalog varchar(128) = N'TestDB'
DECLARE @ls_providerstr varchar(max) = NULL
DECLARE @ls_username varchar(128) = N'*TestUser*'
DECLARE @ls_password varchar(128) = N'*TestPass*'


--Add linked server
EXEC sp_addlinkedserver 
    @server=@ls_servername
    ,@srvproduct=@ls_serverproduct
    ,@provider=@ls_provider
    ,@datasrc=@ls_datasource
    ,@catalog=@ls_catalog
    ,@provstr=@ls_providerstr

--Add credentials
EXEC sp_addlinkedsrvlogin 
    @rmtsrvname=@ls_servername
    ,@useself=N'False'
    ,@rmtuser=@ls_username
    ,@rmtpassword=@ls_password
GO

使用上面的设置,我能够在我们的 DEV 数据库服务器中成功查询 SELECT * 来自 SybaseSERVER.TestDB.dbo.SampleTable

但是,在暂存数据库服务器中使用相同的设置时,我遇到了一个错误:

OLD DB provider "MSDASQL" for linked server "SybaseSERVER" returned message "[SAP][ASE ODBC Driver]Client unable to establish a connection".

但是测试连接时ODBC 64位连接显示成功。

我已经检查了安装程序,我确信它们在安装 MS SQL 和 Sybase 驱动程序方面是相同的。检查两者时,PATH 环境变量差别不大。

临时服务器出现问题的可能原因是什么?可能的解决方案是什么?

这就是我们的 DBA 所做的工作

  1. 将远程访问设置为 1(config_value 和 run_value)
  2. 重新启动 SQL 服务。

我不确定第 1 点是否已连接,但根据我们的 DBA 的说法,他就是这样做的。 但就目前而言,这是我们的第一个行动,以防我们在其他服务器上再次遇到该问题。