Mi sono imbattuto in questo perché avevo appena avuto problemi nella creazione di una connessione remota e non riuscivo a capire perché impostare la porta 1433 nel firewall non stia facendo il lavoro. Finalmente ho il quadro completo, quindi ho pensato di doverlo condividere.
Prima di tutto è necessario abilitare "TCP/IP" utilizzando Gestione configurazione SQL Server in Protocolli per SQLEXPRESS!
Quando si utilizza un'istanza denominata ("SQLExpress" in questo caso), questa verrà ascoltata su una porta dinamica. Per trovare questa porta dinamica hai un paio di opzioni; per citarne alcuni:
controllo ERRORLOG
di SQL Server si trova nella '{MS SQL Server Path}\{MS SQL Server instance name}\MSSQL\Log'
(all'interno troverete una linea simile a questa: "2013-07-25 10:30:36.83 Server Server is listening on [ 'any' <ipv4> 51118]"
-> quindi 51118 è la porta dinamica in questo caso.
registro di controllo: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{MSSQL instance name}\MSSQLServer\SuperSocketNetLib\Tcp\IPAll
, per il mio caso TcpDynamicPorts=51118
.
Edit: {MSSQL instance name}
è qualcosa di simile: MSSQL10_50.SQLEXPRESS
, non solo SQLEXPRESS
Naturalmente, permettendo a questa porta TCP nel firewall e la creazione di un collegamento remoto passando in: "x.x.x.x,51118"
(dove xxxx è il server ip) già lo risolve a questo punto.
Ma poi volevo collegarmi in remoto passando il nome dell'istanza (ad es. x.x.x.x\SQLExpress
). Questo è quando il servizio SQL Browser entra in gioco. Questa è l'unità che risolve il nome dell'istanza nella porta 51118. Il servizio SQL Browser è in ascolto sulla porta UDP 1434 (standard & statico), quindi ho dovuto consentire questo anche nel firewall del server.
Per estendere un po 'la risposta effettiva: se a qualcun altro non piacciono le porte dinamiche e desidera una porta statica per la sua istanza di SQL Server, provare questo link.
sto aggiornando la questione con altre risorse ho guardato in modo che ho booksmarks di loro e altri possono farne uso. http://blogs.msdn.com/sql_protocols/archive/2008/11/05/tcp-listening-ports-and-endpoint-ports-behavior.aspx http://decipherinfosys.wordpress.com/2008/01/02/finding-the-port-number-per-a-particular-sql-server-instance/ http://dumbledad.wordpress.com/2008/07/09/getting-processing-working-with -sql-server-2008/ – royalGhost
Sto usando la vista TCP per vedere la porta su cui è in esecuzione. Sono sorpreso di vedere che il server sta prendendo una porta dinamica invece di 1433 anche dopo averlo installato come istanza predefinita. Ho anche disinstallato l'edizione Express e installato l'edizione completa, dopo di che solo io posso vedere il processo come sqlservr.exe: 5272. E, la mia ipotesi è che sia in ascolto sulla porta 5272. – royalGhost