2009-09-18 15 views
10

Voglio creare un server collegato in MS SQL Server 2000 a un server MS SQL 2005 che gira sulla porta x (non la porta predefinita 1433). Ma non funziona, dato che non posso specificare la porta da nessuna parte !?Come creare un server collegato con porta non predefinita

Utilizzando sqlcmd (specificando la porta x), posso connettermi al server senza problemi, ma non riesco a configurarlo come un server collegato.

Come si può fare?

risposta

6

Nella nuova finestra di server collegato, selezionare "Altro fonte di dati", selezionare "Microsoft OLE DB per SQL Server", come il nome del provider, quindi utilizzare questo come stringa del provider:

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

Sostituire il IP e "1433" con IP e numero di porta.

Maggiori informazioni su stringhe di connessione: http://support.microsoft.com/kb/238949

+0

che avrebbe funzionato! Sai però c'è un modo per farlo funzionare con il provider SQLNCLI? – mjv

+1

Non l'ho provato da solo, ma è possibile provare a utilizzare "Gestione configurazione server SQL" per creare un alias, definire l'IP e il numero di porta lì. Quindi utilizzare quell'alias nella stringa di connessione SQLNCLI. Il rovescio della medaglia è che ogni macchina client dovrebbe avere questo. Se sono solo due server collegati, dovrebbe funzionare. –

7

Un altro modo per raggiungere questo obiettivo (ammesso che si è impostato 8080 in SQL Server) è con il seguente codice:

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

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

Basato sul suggerimento di Shane, aggiungere un alias ha funzionato per me.

(SQL Server 2008 R2):

  • Aprire SQL Server Configuration Manager
  • Espandere "SQL Server Configuration Manager (locale)"
  • Expand "10.0 Configurazione SQL Native Client (32bit)"
  • Fai clic su "alias"
  • destro del clic nella lista alias destra, e scegliere "Nuovo alias"
  • "alias Name" è tutto ciò che y vuoi fare riferimento al server collegato come.
  • "Porta n." È la porta non predefinita.
  • "Protocollo" dipende, ma molto probabilmente lo si lascia come "TCP/IP".
  • "Server" è l'indirizzo del server al quale si sta tentando di connettersi (esclusa la porta).

(ripetere la procedura di "SQL Server Native Client 10.0 Configurazione" (meno il testo '32bit'))

Aggiunta di un alias in questo modo mi ha permesso di aggiungere un server collegato con il tipo di server come "SQL Server", senza configurare le opzioni di provider, ecc

0

notare che le domande in 4 parti saranno simili a questo:

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

ho dovuto fare questo anche oggi (aggiungere un server collegato con non predefinito porta). Nel mio caso si stava aggiungendo un server collegato a SQL Server 2014 a SQL Server 2016.

passaggi utilizzando SQL Server Management Studio:

  1. Aperte SSMS e andare a oggetti server> Linked Server> Nuovo server collegato
  2. Utilizzare questo formato per il server collegato ip-address-of-linked-server\instance-name,non-default-port o, 192.168.10.5\dev-sql,25250. Il nome dell'istanza è richiesto solo se quell'istanza non è l'istanza predefinita sul server collegato alla destinazione. Inoltre, è possibile sostituire l'indirizzo IP in base al nome host se il server collegato si trova sulla rete locale.

  3. Selezionare SQL Server per Server Tipo

  4. Aggiungi eventuali credenziali richieste per la connessione utilizzando la scheda Protezione
  5. Query il nuovo server utilizzando il formato proprio come SQLDBA specificato above.

example screenshot

stessa cosa usando 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'

Problemi correlati