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 SQL Server e offre informazioni sulle istanze di SQL Server installate sul 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 SQL Server Resolution Protocol (SSRP) 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 si avvia un'istanza di SQL Server e si abilita il protocollo TCP/IP 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 named pipe viene usata da quell’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. L'amministratore del server può modificare la porta o la named pipe 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. Quando si connettono a SQL Server, i client possono specificare una determinata porta. 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 di reindirizzamento OLAP (Online Analytical Processing).
  • 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 ciascuna istanza potrebbe essere usata da un altro servizio o da un'altra applicazione sul server, con conseguente mancanza di disponibilità 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 su 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.