0

我正在尝试将链接服务器从 Windows 2k3 / SQL Server 2000 复制到 Windows 2008 / SQL 2008 R2 设置。

SQL 2000 链接服务器的设置如下:

srvname=blah.blah.com
srvproduct=SQL Server
providername=SQLOLEDB
datasource=blah.blah.com
srvnetname=blah.blah.com
rpc=1
rpcout=1
dataaccess=1

SQL 2008 R2 链接服务器的设置方式相同。我已经复制了远程用户,一切似乎都很好,除了当我尝试连接时,我得到了这个错误:

 OLE DB provider "SQLNCLI10" for linked server "blah.blah.com" returned message "Client unable to establish connection". (Microsoft SQL Server, Error: 20)
 Encryption not supported on SQL Server

我仍然可以访问 SQL 2000 机器,并且可以正常运行查询。我猜问题是 Windows2008 机器正在尝试发送加密的数据,但链接服务器说它无法处理加密。类似的东西。我玩过各种不同的数据源类型,但似乎没有任何结果。我无权访问远程服务器,所以我不知道它上面有什么操作系统/数据库。

任何比我拥有更多 SQL 知识的人都可以为我指明正确的方向吗?谢谢!

4

1 回答 1

0

万岁!我已经做到了。对于将来可能会发现此问题的任何人,这就是我所做的:

  1. 创建到 SOMESERVER.COM 的 ODBC 连接,将其命名为 dsnSOME
    • 驱动程序:SQL Server
    • 名称: dsnSOM
    • 服务器:SOMESERVER.COM
  2. 创建到 dsnSOM 的链接服务器:
    • 链接服务器:“SOMESERVER”(我认为这不重要)
    • 提供程序:用于 ODBC 驱动程序的 Microsoft OLE DB 提供程序
    • 产品名称: dsnSOME
    • 数据来源:dsnSOME

就是这样。现在,当我调用存储过程时,我调用:

[SOMESERVER].database.owner.storedprocedure

它有效!

似乎无论出于何种原因,当尝试将 SQL 64 位存储过程直接运行到 SQL 32 位链接服务器时,它会给出关于加密的奇怪消息。但是通过 ODBC 并且效果很好。

于 2012-10-25T17:14:44.890 回答