Servizio SQL Server Browser (Motore database e SSAS)
Il programma SQL Server Browser viene eseguito come servizio Windows. SQL Server Browser rimane in attesa delle richieste in entrata di risorse di Microsoft SQL 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 amministrativa dedicata (DAC)
Per ogni istanza del Motore di database e di 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.
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.
Background
Nelle versioni precedenti a SQL Server 2000 è possibile installare solo un'istanza di SQL Server in un computer. SQL Server resta in attesa 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ò utilizzare una porta, quando in SQL Server 2000 è 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 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 è abilitato per SQL Server, al server viene assegnata una porta TCP/IP. Se è abilitato 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 abilitati, 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 abilitata rilevata per SQL Server. SQL Server Browser supporta Ipv6 ed ipv4. SQL Server Browser non restituisce informazioni sulla porta per l'istanza predefinita.
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'arresto del servizio SQL Server Browser, vedere Avviare, arrestare, sospendere, riprendere, riavviare il motore di database, SQL Server Agent o 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 amministrativa dedicata (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 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 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.
Clustering
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. Sui cluster SQL Server Browser è in attesa su IP_ANY.
[!NOTA]
Durante l'attesa su IP_ANY, quando si abilita 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(x86)\Microsoft SQL Server\90\Shared\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, a scopo di risoluzione dei problemi, utilizzando l'opzione -c:
<drive>\<path>\sqlbrowser.exe -c
Sicurezza
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 sicurezza 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
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.
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 online di SQL Server.