Как создать 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'