Servizio SQL Server Browser (motore di database e SSAS)
Si applica a: SQL Server
Il programma SQL Server Browser viene eseguito come servizio di Windows. SQL Server Browser rimane in ascolto delle richieste in arrivo per le risorse di Microsoft SQL Server e offre 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 amministrativa dedicata (DAC)
Per ogni istanza del motore di database e di SSAS, il servizio SQL Server Browser (sqlbrowser) offre il nome dell'istanza e il numero di versione. SQL Server Browser viene installato con SQL Server.
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:
Durante l'aggiornamento di un'installazione.
Durante l'installazione in un cluster.
Durante l'installazione di un'istanza denominata del motore di database che include tutte le istanze di SQL Server Express.
Durante l'installazione di un'istanza denominata di Analysis Services.
Prima di SQL Server 2000 (8.x), è possibile installare solo un'istanza di SQL Server in un computer. SQL Server resta in ascolto delle richieste in entrata sulla porta 1433, assegnata a SQL Server dall'autorità ufficiale IANA (Internet Assigned Numbers Authority). Poiché solo un'istanza di SQL Server può usare una porta, quando in SQL Server 2000 (8.x) è stato introdotto il supporto per più istanze di SQL Server, è stato sviluppato il protocollo SSRP (SQL Server Resolution Protocol) per l'ascolto sulla porta UDP 1434. Il servizio listener risponde alle richieste del client con i nomi delle istanze installate e le porte o le named pipe usate dall'istanza. Per risolvere i problemi connessi ai limiti del sistema SSRP, SQL Server 2005 (9.x) ha introdotto il servizio SQL Server Browser in sostituzione di SSRP.
Quando viene avviata un'istanza di SQL Server, se il protocollo TCP/IP è abilitato per SQL Server, al server viene assegnata una porta TCP/IP. Se è abilitato il protocollo delle named pipe, SQL Server rimane in ascolto su una named pipe specifica. Questa porta, o "pipe", viene usata 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 usando Gestione configurazione SQL Server. Poiché solo un'istanza di SQL Server può usare 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 abilitati, sia le istanze denominate che SQL Server Express sono configurati per l'uso 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 avvia 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 usate. Quando in un server sono installate due o più schede di rete, SQL Server Browser restituisce la prima porta abilitata rilevata per SQL Server. SQL Server Browser supporta ipv6 e ipv4.
Quando i client di SQL Server richiedono le risorse SQL Server, la libreria di rete client invia un messaggio UDP al server usando 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. Il servizio SQL Server Browser non offre la risoluzione delle porte per le istanze predefinite.
Per informazioni sull'avvio e l'arresto del servizio SQL Server Browser, vedere Avviare, arrestare, sospendere, riprendere, riavviare il motore di database, SQL Server Agent o 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 sulla porta 1433.
Se tuttavia il servizio SQL Server Browser non è in esecuzione, le connessioni seguenti non funzionano:
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 usate 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 amministrativa dedicata (DAC) a un'istanza denominata o all'istanza predefinita se non si usano la porta TCP/IP 1433.
Servizio redirector OLAP.
Server di enumerazione in SQL Server Management Studio, Enterprise Manager o Query Analyzer.
Se si usa SQL Server in uno scenario client-server, ad esempio quando l'applicazione accede a SQL Server su una rete, e si arresta o disabilita 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 usato 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 usata da un altro servizio o da un'altra applicazione nel server, con conseguente mancanza di disponibilità da parte dell'istanza di SQL Server.
SQL Server Browser non è una risorsa cluster e non supporta il failover tra nodi del cluster. Nel caso di un cluster è pertanto consigliabile installare e abilitare SQL Server Browser per ogni nodo del cluster. Nei cluster SQL Server Browser è in ascolto su IP_ANY.
Nota
Durante l'ascolto su IP_ANY, quando si abilita l'ascolto 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.
Per impostazione predefinita, il programma SQL Server Browser viene installato in C:\Programmi(x86)\Microsoft SQL Server\90\Condiviso\sqlbrowser.exe.
Il servizio SQL Server Browser viene disinstallato quando viene rimossa l'ultima istanza di SQL Server.
SQL Server Browser può essere avviato dal prompt dei comandi, ai fini della risoluzione dei problemi, usando l'opzione -c:
<drive>\<path>\sqlbrowser.exe -c
SQL Server Browser resta in ascolto su una porta UDP e accetta le richieste non autenticate tramite il protocollo SSRP (SQL Server Resolution Protocol). SQL Server Browser deve essere eseguito 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 usando Gestione configurazione SQL Server. I diritti utente minimi per SQL Server Browser sono i seguenti:
Negare l'accesso al computer dalla rete
Nega accesso locale
Nega accesso come processo batch
Nega accesso tramite Servizi terminal
Accedi come servizio
Lettura e scrittura delle chiavi del Registro di sistema di SQL Server correlate alle comunicazioni di rete (porte e pipe)
L'istallazione consente di configurare SQL Server Browser per l'utilizzo dell'account selezionato per i servizi durante la configurazione. Tra gli altri account possibili sono inclusi i seguenti:
Tutti gli account di dominio\locali
Account Servizio locale
Account Sistema locale (sconsigliabile perché include privilegi non necessari)
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 con informazioni su questa istanza del server.
Per comunicare con il servizio SQL Server Browser in un server sottostante un firewall, aprire la porta UDP 1434 oltre alla porta TCP usata da SQL Server, ad esempio la porta 1433. Per informazioni sull'utilizzo di un firewall, vedere "Procedura: Configurare un firewall per l'accesso a SQL Server" nella documentazione online di SQL Server.
Protocolli e librerie di rete
Nascondere un'istanza del motore di database di SQL Server