Servizio SQL Server Browser
Il programma SQL Server Browser viene eseguito come servizio di Windows. SQL Server Browser resta in attesa delle richieste in arrivo di risorse di MicrosoftSQL Server e fornisce informazioni sulle istanze di SQL Server installate nel computer. SQL Server Browser consente di eseguire le azioni seguenti:
Esplorazione di un elenco di server disponibili
Connessione all'istanza del server corretta
Connessione a endpoint della connessione DAC
Per ogni istanza di Motore di database e SSAS, il servizio SQL Server Browser (sqlbrowser) fornisce il nome dell'istanza e il numero di versione. SQL Server Browser viene installato con SQL Server e offre questo servizio per le versioni precedenti di SQL Server in esecuzione nel computer, a partire da SQL Server 7.0.
SQL Server Browser può essere configurato durante l'installazione o mediante Gestione configurazione SQL Server. Per impostazione predefinita, il servizio SQL Server Browser viene avviato automaticamente:
Quando si aggiorna un'installazione.
In caso di installazione affiancata a un'istanza di SQL Server 2000.
In caso di installazione in un cluster.
Durante l'installazione di un'istanza denominata di SQL Server Enterprise, Standard o Workgroup.
In caso di installazione di un'istanza denominata di Analysis Services.
Scenario di base
Con le versioni che precedono SQL Server 2000 è possibile installare solo un'istanza di SQL Server in un computer. SQL Server è in attesa delle richieste in ingresso sulla porta 1433, assegnata a SQL Server dall'autorità ufficiale IANA (Internet Assigned Numbers Authority). Poiché solo un'istanza di SQL Server può utilizzare una porta, quando con SQL Server 2000 è stato introdotto il supporto per più istanze di SQL Server, è stato sviluppato il protocollo SSRP (SQL Server Resolution Protocol) per l'attesa sulla porta UDP 1434. Questo servizio di attesa risponde alle richieste del client con i nomi delle istanze installate e le porte o le named pipe utilizzate dall'istanza. Per risolvere i problemi connessi ai suoi limiti, in SQL Server 2005 il sistema SSRP è stato sostituito dal servizio SQL Server Browser.
Funzionamento di SQL Server Browser
Quando viene avviata un'istanza di SQL Server, se il protocollo TCP/IP o VIA è attivato per SQL Server, al server viene assegnata una porta TCP/IP. Se è attivato il protocollo Named Pipes, SQL Server rimane in attesa su una named pipe specifica. Questa porta, o "pipe", viene utilizzata dall'istanza specifica per scambiare dati con le applicazioni client. Durante l'installazione, la porta TCP 1433 e la pipe \sql\query vengono assegnate all'istanza predefinita, ma possono essere cambiate in seguito dall'amministratore del server utilizzando Gestione configurazione SQL Server. Poiché solo un'istanza di SQL Server può utilizzare una porta o una pipe, vengono assegnati diversi numeri di porta e nomi di pipe alle istanze denominate, incluso SQL Server Express. Per impostazione predefinita, quando sono attivati, sia le istanze denominate che SQL Server Express sono configurati per l'utilizzo di porte dinamiche, ovvero viene assegnata una porta disponibile quando viene avviato SQL Server. Se lo si desidera, è possibile assegnare una porta specifica a un'istanza di SQL Server. Durante la connessione, i client possono specificare una determinata porta, ma se la porta viene assegnata in modo dinamico, il numero di porta può essere modificato a ogni riavvio di SQL Server e, pertanto, il numero di porta corretto non è noto al client.
All'avvio, SQL Server Browser viene avviato e richiede la porta UDP 1434. SQL Server Browser legge il Registro di sistema, identifica tutte le istanze di SQL Server nel computer e rileva le porte e le named pipe utilizzate. Quando in un server sono installate due o più schede di rete, SQL Server Browser restituisce la prima porta attivata rilevata per SQL Server. SQL Server Browser supporta Ipv6 ed ipv4.
Quando i client SQL Server richiedono le risorse SQL Server, la libreria di rete client invia un messaggio UDP al server utilizzando la porta 1434. SQL Server Browser risponde con la porta TCP/IP o la named pipe dell'istanza richiesta. La libreria di rete dell'applicazione client completa quindi la connessione inviando una richiesta al server tramite la porta o la named pipe dell'istanza desiderata.
Per informazioni sull'avvio e l'interruzione del servizio SQL Server Browser, vedere Procedura: Avvio e interruzione del servizio SQL Server Browser.
Utilizzo di SQL Server Browser
Se il servizio SQL Server Browser non è in esecuzione, è comunque possibile connettersi a SQL Server indicando la named pipe o il numero di porta corretto. È ad esempio possibile connettersi all'istanza predefinita di SQL Server con TCP/IP se l'istanza è in esecuzione nella porta 1433.
Se tuttavia il servizio SQL Server Browser non è in esecuzione, non funzionano le connessioni seguenti:
Qualsiasi componente che tenta di eseguire la connessione a un'istanza denominata senza specificare completamente i parametri, ad esempio la porta TCP/IP o la named pipe.
Qualsiasi componente che genera o passa informazioni server/istanza che potrebbero essere utilizzate in seguito da altri componenti per eseguire nuovamente la connessione.
Connessione a un'istanza denominata senza indicare il numero di porta o la pipe.
Connessione DAC a un'istanza denominata o all'istanza predefinita se non si utilizza la porta TCP/IP 1433.
Servizio redirector OLAP.
Enumerazione dei server in SQL Server Management Studio, Enterprise Manager o Query Analyzer.
Se si utilizza SQL Server in uno scenario client-server, ad esempio quando l'applicazione accede a SQL Server su una rete, e si interrompe o disattiva il servizio SQL Server Browser, è necessario assegnare un numero di porta specifico a ogni istanza e scrivere il codice dell'applicazione client affinché venga sempre utilizzato il numero di porta assegnato. Questo approccio comporta i problemi indicati di seguito.
È necessario aggiornare e mantenere aggiornato il codice dell'applicazione client per assicurarsi che si connetta alla porta corretta.
La porta scelta per ogni istanza potrebbe essere utilizzata da un altro servizio o un'altra applicazione nel server, con conseguente non disponibilità dell'istanza di SQL Server.
Installazione affiancata con SQL Server 2000
In SQL Server 2000 l'identificazione degli endpoint della connessione del server viene eseguita dal servizio SQL Server. In SQL Server 2005 questa funzione è stata sostituita dal servizio SQL Server Browser. Se si installa SQL Server in un computer in cui è in esecuzione anche SQL Server 2000 o MSDE, è necessario verificare che SQL Server 2000 o MSDE sia stato aggiornato al Service Pack 3a (SP3a) o versione successiva. Le versioni precedenti a SP3a non assicurano la condivisione corretta della porta 1434 e potrebbero rendere le istanze di SQL Server non disponibili per le applicazioni client che inviano richieste. Benché sia possibile modificare l'ordine di avvio dei servizi affinché il servizio SQL Server Browser venga avviato prima di SQL Server 2000 o MSDE, è consigliabile aggiornare tutte le versioni meno recenti di SQL Server alla versione più recente del service pack.
Quando viene installata un'istanza di SQL Server 2000 non aggiornata almeno al Service Pack 3a, se SQL Server Browser non è in esecuzione, viene avviato il servizio di attesa di SQL Server 2000. Se SQL Server Browser viene avviato dopo il servizio listener, attende cinque secondi che SQL Server 2000 ceda la porta 1434. Se ciò non si verifica, SQL Server Browser non viene avviato. Per risolvere questo problema con le versioni di SQL Server 2000 precedenti al Service Pack 3a, interrompere SQL Server 2000, avviare SQL Server Browser, quindi riavviare SQL Server 2000. Poiché il servizio di attesa di SQL Server 2000 continua a tentare l'avvio nella porta 1434, è consigliabile aggiornare l'istanza di SQL Server 2000 al Service Pack 3a non appena possibile.
SQL Server 7.0 non ha caratteristiche simili e non provoca conflitti con SQL Server Browser.
Clustering
SQL Server Browser non è una risorsa cluster e non supporta il failover tra nodi cluster. Nel caso di un cluster, è pertanto consigliabile installare e attivare SQL Server Browser per ogni nodo del cluster. Sui cluster SQL Server Browser è in attesa su IP_ANY.
[!NOTA]
Durante l'attesa su IP_ANY, quando si attiva l'attesa su IP specifici, l'utente deve configurare la stessa porta TCP in ogni IP, poiché SQL Server Browser restituisce la prima coppia IP/porta rilevata.
Installazione, disinstallazione ed esecuzione dalla riga di comando
Per impostazione predefinita, il programma SQL Server Browser viene installato in C:\Programmi\Microsoft SQL Server\100\Shared\sqlbrowser.exe. Se nel computer è installato SQL Server 2000 ma non è aggiornato al Service Pack 3 e l'istanza di SQL Server 2000 non viene aggiornata, è consigliabile interrompere SQL Server 2000 durante l'installazione di SQL Server. Se SQL Server 2000 è in esecuzione, SQL Server Browser non può essere avviato né richiedere la porta 1434 e l'installazione potrebbe non riuscire a causa dell'assenza di connettività.
Il servizio SQL Server Browser viene disinstallato quando viene rimossa l'ultima istanza di SQL Server. Le istanze di SQL Server 2000 riprendono il funzionamento originale.
SQL Server Browser può essere avviato dal prompt dei comandi, a scopo di risoluzione dei problemi, utilizzando l'opzione -c:
<drive>\<path>\sqlbrowser.exe -c
Protezione
Privilegi dell'account
SQL Server Browser rimane in attesa su una porta UDP e accetta le richieste non autenticate tramite il protocollo SSRP (SQL Server Resolution Protocol). È consigliabile eseguire SQL Server Browser nel contesto di protezione di un utente con pochi privilegi per ridurre l'esposizione agli attacchi da parte di utenti malintenzionati. È possibile modificare l'account di accesso utilizzando Gestione configurazione SQL Server. Di seguito vengono indicati i diritti utente minimi per SQL Server Browser:
Nega accesso al computer dalla rete
Nega accesso locale
Nega accesso come processo batch
Nega accesso tramite Servizi terminal
Accedi come servizio
Lettura e scrittura per le chiavi del Registro di sistema di SQL Server correlate alle comunicazioni di rete (porte e pipe)
Account predefinito
Tramite il programma di installazione SQL Server Browser viene configurato per l'utilizzo dell'account selezionato per i servizi durante l'installazione. Tra gli altri account possibili sono inclusi i seguenti:
Tutti gli account di dominio\locali
Account Servizio locale (non disponibile nelle piattaforme W2K)
Account Sistema locale (sconsigliabile, in quanto include privilegi non necessari)
Istanze nascoste di SQL Server
Le istanze nascoste sono istanze di SQL Server che supportano solo connessioni della memoria condivisa. Per SQL Server, impostare il flag HideInstance per indicare che SQL Server Browser non deve rispondere inviando alcuna informazione su questa istanza del server. SQL Server Browser supporta inoltre il metodo di SQL Server 2000 per nascondere le istanze attivate impostando l'opzione HideServer tramite l'utilità di configurazione di rete del server. Per informazioni sulla configurazione dell'opzione HideServer, vedere "Procedura: Nascondere un'istanza di Motore di database di SQL Server" nella documentazione in linea di SQL Server.
Utilizzo di un firewall
Per comunicare con il servizio SQL Server Browser in un server protetto da un firewall, aprire la porta UDP 1434 oltre alla porta TCP utilizzata da SQL Server, ad esempio la porta 1433. Per informazioni sull'utilizzo di un firewall, vedere "Procedura: Configurazione di un firewall per l'accesso a SQL Server" nella documentazione in linea di SQL Server.