Как создать Linked Server с нестандартным портом

Я хочу создать связанный сервер в MS SQL Server 2000 с сервером MS SQL 2005, который работает на порту x (а не по умолчанию 1433). Но это не работает, поскольку я не могу указать порт где-нибудь!?

Используя sqlcmd (указав порт x), я могу без проблем подключиться к серверу, но я не могу настроить его как Linked Server.

Как это можно сделать?

Ответ 1

В диалоговом окне нового связанного сервера выберите "Другой источник данных", выберите "Поставщик 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

Ответ 2

Другой способ достичь этого (при условии, что вы настроили 8080 в SQL Server) имеет следующий код:

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

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

Ответ 3

Основываясь на предположении Шейна, добавление псевдонима работало для меня.

(SQL Server 2008 R2):

  • Откройте диспетчер конфигурации SQL Server
  • Разверните "Менеджер конфигурации SQL Server (локальный)"
  • Разверните "SQL Native Client 10.0 Configuration (32bit)"
  • Нажмите "Псевдонимы"
  • Щелкните правой кнопкой мыши в списке псевдонимов правой стороны и выберите "Новое псевдоним"
  • "Alias ​​Name" - это то, что вы хотите ссылаться на связанный сервер.
  • "Порт №" - это ваш нестандартный порт.
  • "Протокол" зависит, но вы, скорее всего, оставите это как "TCP/IP".
  • "Сервер" - это адрес сервера, к которому вы пытаетесь подключиться (не включая порт).

(повторите шаги для "Конфигурация собственного клиента 10.0" (минус "32-битный" текст)

Добавление псевдонима таким образом позволило мне добавить связанный сервер с типом сервера как "SQL Server", не настраивая параметры поставщика и т.д.

Ответ 4

Обратите внимание, что запросы из 4-х частей будут выглядеть примерно так:

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

Ответ 5

Мне тоже пришлось это сделать сегодня (добавьте связанный сервер с портом, отличным от стандартного). В моем случае он добавлял связанный сервер SQL Server 2014 к SQL Server 2016.

Шаги, использующие SQL Server Management Studio:

  • Откройте SSMS и перейдите к Объектам серверa > Связанный сервеp > Новый связанный сервер
  • Используйте этот формат для связанного сервера ip-address-of-linked-server\instance-name,non-default-port или, 192.168.10.5\dev-sql,25250. Имя экземпляра требуется только в том случае, если этот экземпляр не является экземпляром по умолчанию на целевом подключенном сервере. Кроме того, вы можете заменить ip-адрес именем хоста, если связанный сервер находится в вашей локальной сети.

  • Выберите SQL Server для типа сервера

  • Добавьте учетные данные, необходимые для подключения, используя вкладку "Безопасность"
  • Запросите новый сервер, используя формат, подобный SQLDBA, указанный выше.

пример скриншота

То же самое с использованием 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'