如何使用非默认端口创建链接服务器

问题描述:

我想在MS SQL Server 2000中创建链接服务器到运行在端口x(不是默认端口1433)上的MS SQL 2005服务器。但它不起作用,因为我无法在任何地方指定端口!?如何使用非默认端口创建链接服务器

使用sqlcmd(指定端口x),我可以毫无问题地连接到服务器 - 但我无法将其设置为链接服务器。

这怎么办?

在新的链接服务器对话框中,选择“其他数据源”,选择“Microsoft OLE DB提供程序SQL Server”作为您的供应商的名称,然后用这个作为你的供应商字符串:

Data Source=192.168.1.100,1433;Network Library=DBMSSOCN;Initial Catalog=yourdbname;User ID=username;Password=password; 

更换IP和“1433”与您的IP和端口号。在连接字符串

更多信息:http://support.microsoft.com/kb/238949

+0

这将工作!你知道是否有一种方法可以使用SQLNCLI提供程序进行这项工作? – mjv 2009-09-18 15:51:43

+1

我没有尝试过自己,但你可以尝试使用“SQL Server配置管理器”创建一个别名,在那里定义IP和端口号。然后在你的SQLNCLI连接字符串中使用该别名。缺点是每个客户端机器都需要这样做。如果它只是两个链接的服务器,它应该可以工作。 – 2009-09-18 16:06:54

另一种方式来实现这一目标(假设你已经在SQL Server中建立8080)是用下面的代码:

EXEC sp_addlinkedserver 'myserver', '', 'SQLNCLI', 'xx.xx.xx.xx,8080' 

EXEC sp_addlinkedsrvlogin 'myserver', 'FALSE', NULL, 'user', 'pwd' 

基于巴蒂尔的建议,添加一个别名为我工作。

(SQL Server 2008 R2中):

  • 打开SQL Server配置管理器
  • 展开 “SQL Server配置管理(本地)”
  • 展开 “SQL Native Client的10.0配置(32位)”
  • 点击“别名”,在右侧的别名列表
  • 单击鼠标右键,选择“新建别名”
  • “别名”是什么ÿ你想参考链接的服务器。
  • “端口号”是您的非默认端口。
  • “协议”取决于,但您最有可能将其保留为“TCP/IP”。
  • “服务器”是您尝试连接到的服务器的地址(不包括端口)。

(重复“SQL本机客户端10.0配置”(减去了“32位”文本)中的步骤)

添加一个别名,这种方式让我添加链接的服务器与服务器类型为“SQL服务器”,而无需配置提供期权等

注意4部分查询将类似于此:

SELECT * FROM [SQLSERVER,14333].[DATABASE].[dbo].[Table1] 

我不得不这样做今天以及(添加链接的服务器使用非默认港口)。就我而言,它是将SQL Server 2014链接服务器添加到SQL Server 2016。

步骤,使用SQL Server Management Studio中:

  1. 打开SSMS并转到服务器对象>链接服务器>新建链接服务器
  2. 使用这种格式的链接服务器 ip-address-of-linked-server\instance-name,non-default-port192.168.10.5\dev-sql,25250。仅当实例不是目标链接服务器上的默认实例时才需要实例名称。此外,如果链接的服务器位于本地网络上,则可以通过主机名替换IP地址。对于服务器类型

  3. 选择SQL Server添加使用的安全选项卡

  4. 查询使用就像SQLDBA指定above格式的新服务器连接所需的任何凭据。

example screenshot

使用T-SQL同一件事:

EXEC master.dbo.sp_addlinkedserver @server = N'192.168.10.5\dev-sql,25250', @srvproduct=N'SQL Server'

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'192.168.10.5\dev-sql,25250',@useself=N'False',@locallogin=NULL,@rmtuser=N'my_username',@rmtpassword='my_pswd'