2009-09-18 13 views
10

Chcę utworzyć serwer połączony w MS SQL Server 2000 na serwerze MS SQL 2005, który działa na porcie x (nie na porcie domyślnym 1433). Ale to nie działa, ponieważ nie mogę nigdzie określić portu !?Jak utworzyć serwer połączony z innym niż domyślny portem

Używając sqlcmd (określając port x), mogę połączyć się z serwerem bez problemów - ale nie mogę ustawić go jako połączonego serwera.

Jak można tego dokonać?

Odpowiedz

6

W nowym oknie serwera połączonego, wybierz "Inne źródła danych", wybierz "Microsoft OLE DB dla SQL Server" jako nazwę dostawcy, a następnie użyć tego jako ciąg provider:

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

Wymienić IP i "1433" z twoim IP i numerem portu.

Więcej informacji na ciągi połączeń: http://support.microsoft.com/kb/238949

+0

To będzie działać! Czy wiesz jednak, że istnieje sposób, aby to zadziałało z dostawcą SQLNCLI? – mjv

+1

Nie wypróbowałem go sam, ale można spróbować użyć "SQL Server Configuration Manager", aby utworzyć alias, określić adres IP i numer portu. Następnie użyj tego aliasu w ciągu połączenia SQLNCLI. Minusem jest to, że każda maszyna kliencka musi to mieć. Jeśli to tylko dwa połączone serwery, powinno działać. –

7

Innym sposobem osiągnięcia tego celu (przy założeniu, że skonfigurowaniu 8080 w SQL Server) jest z następującego kodu:

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

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

podstawie sugestii Shane'a, dodanie aliasu zadziałało dla mnie.

(SQL Server 2008 R2):

  • Otwórz SQL Server Configuration Manager
  • Expand "Konfiguracja SQL Server Manager (local)"
  • Expand "SQL Native Client 10.0 Configuration (32bit)"
  • kliknąć „Pseudonimy”
  • prawym przyciskiem myszy na liście alias po prawej stronie, a następnie wybierz „Nowy alias”
  • „Alias ​​Name” jest cokolwiek y Chcesz odwołać się do połączonego serwera jako.
  • "Nr portu" to twój domyślny port.
  • "Protokół" zależy, ale najprawdopodobniej możesz zostawić to jako "TCP/IP".
  • "Serwer" to adres serwera, z którym próbujesz się połączyć (bez portu).

(powtórz kroki „SQL Native Client 10.0 Konfiguracja” (minus „32bit” tekstu))

Dodawanie aliasu ten sposób pozwolił mi dodać serwer połączony z typem serwera jako „SQL serwer”, bez konfigurowania opcji dostawcy, itp

0

Należy zauważyć, że kwerendy 4-częściowe będą wyglądać podobnie do tego:

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

musiałem zrobić to dzisiaj, jak również (dodać serwer połączony z non-default Port). W moim przypadku było dodanie serwera połączonego SQL Server 2014 do SQL Server 2016.

Kroki pomocą SQL Server Management Studio:

  1. Otwartych SSMS i przejdź do serwera Przedmioty> Linked Server> Nowy serwer połączony
  2. używać tego formatu dla serwera połączonego ip-address-of-linked-server\instance-name,non-default-port lub 192.168.10.5\dev-sql,25250. Nazwa instancji jest wymagana tylko wtedy, gdy ta instancja nie jest domyślną instancją na połączonym z serwerem docelowym. Możesz również zastąpić adres IP nazwą hosta, jeśli serwer połączony znajduje się w sieci lokalnej.

  3. Wybierz SQL Server dla serwerów typu

  4. Dodaj żadnych poświadczenia wymagane do połączenia za pomocą kartę Zabezpieczenia
  5. Query nowy serwer przy użyciu formatu jak SQLDBA określony above.

example screenshot

samo za pomocą 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'

Powiązane problemy