Servizio SQL Server Browser

Si applica a:SQL Server - solo Windows

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:

Per ogni istanza del motore di database e di SSAS (SQL Server Analysis Services), 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 SSAS.

Background

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.

Funzionamento di SQL Server Browser

Quando viene avviata un'istanza di SQL Server, se il protocollo TCP/IP è abilitato per SQL Server][def], 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. La porta TCP 1433 e la pipe \sql\query vengono assegnate all'istanza predefinita durante l'installazione. È comunque possibile modificarle in un secondo momento 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 le istanze denominate e SQL Server Express sono configurate per l'attesa su porte dinamiche. Ovvero, all'avvio di SQL Server viene assegnata una porta disponibile.

Se lo si desidera, è possibile assegnare una porta specifica a un'istanza di SQL Server. Durante la connessione, i client possono specificare una porta specifica. Tuttavia, 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.

Informazioni su come avviare e arrestare il servizio SQL Server Browser nell'articolo Avviare, arrestare, sospendere, riprendere, riavviare i servizi SQL Server.

Usare 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.
  • Enumerazione dei server in SQL Server Management Studio o Azure Data Studio.

Si supponga di usare SQL Server in uno scenario client-server, ad esempio quando l'applicazione accede a SQL Server in una rete. Se si arresta o si disabilita il servizio SQL Server Browser, è necessario assegnare un numero di porta specifico a ogni istanza e scrivere il codice dell'applicazione client per usare tale numero di porta. 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.

Cluster e SQL Server Browser

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.

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\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

Sicurezza

Il servizio SQL Server Browser è fondamentale per facilitare la comunicazione di rete con le istanze di SQL Server.

Le misure di sicurezza per il servizio SQL Server Browser includono:

  • Configurazione dei firewall per consentire il traffico.
  • Limitazione dell'accesso agli indirizzi IP attendibili.
  • Applicazione regolare degli aggiornamenti alle vulnerabilità delle patch.
  • È inoltre essenziale implementare criteri di autenticazione e autorizzazione dettagliati per impedire l'accesso non autorizzato e mantenere l'integrità dell'ambiente SQL Server.

Privilegi dell'account

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 registrazione usando Gestione configurazione SQL Server.

I diritti utente minimi per SQL Server Browser sono i seguenti:

  • Rifiutare l'accesso al computer dalla rete.
  • Negare la registrazione localmente.
  • Negare la registrazione come processo batch
  • Negare l'accesso tramite servizi Terminal.
  • Eseguire l'accesso come servizio.
  • Lettura e scrittura delle chiavi del Registro di sistema di SQL Server correlate alle comunicazioni di rete (porte e pipe).

Account predefinito

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:

  • Tutti gli account di dominio\locali.
  • L'account Servizio locale.
  • L'account di sistema locale (non consigliato, perché include privilegi non necessari).

Nascondere 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 con informazioni su questa istanza del server.

Usare un firewall

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'uso di un firewall, vedere Configurare Windows Firewall per consentire l'accesso a SQL Server.

Vedi anche

Altre informazioni sui concetti correlati sono disponibili negli articoli seguenti: