SQL Server Browser Service
- 03/14/2017
- 6 minuti per leggere
-
- m
- M
- M
- J
- c
-
+3
Si applica a: SQL Server (tutte le versioni supportate) – solo Windows Azure SQL Managed Instance
Il programma SQL ServerBrowser funziona come un servizio di Windows. SQL Server Browser ascolta le richieste in arrivo per le risorse di Microsoft SQL Server e fornisce informazioni sulle istanze di SQL Server installate sul computer. SQL Server Browser contribuisce alle seguenti azioni:
-
Cerca un elenco di server disponibili
-
Collegamento all’istanza corretta del server
-
Collegamento agli endpoint di connessione dell’amministratore dedicato (DAC)
Per ogni istanza di Database Engine e SSAS, il servizio SQL Server Browser (sqlbrowser) fornisce il nome dell’istanza e il numero di versione. SQL Server Browser è installato con SQL Server.
SQL Server Browser può essere configurato durante la configurazione o utilizzando SQL Server Configuration Manager. Per impostazione predefinita, il servizio SQL Server Browser si avvia automaticamente:
-
Quando si aggiorna un’installazione.
-
Quando si installa su un cluster.
-
Quando si installa un’istanza nominata del Database Engine comprese tutte le istanze di SQL Server Express.
-
Quando si installa un’istanza nominata di Analysis Services.
Sfondo
Prima di SQL Server 2000 (8.x), solo una istanza di SQL Server poteva essere installata su un computer. SQL Server ascoltava le richieste in arrivo sulla porta 1433, assegnata a SQL Server dalla Internet Assigned Numbers Authority (IANA) ufficiale. Solo un’istanza di SQL Server può usare una porta, così quando SQL Server 2000 (8.x) introdusse il supporto per più istanze di SQL Server, SQL Server Resolution Protocol (SSRP) fu sviluppato per ascoltare sulla porta UDP 1434. Questo servizio di ascolto rispondeva alle richieste dei client con i nomi delle istanze installate e le porte o le pipe nominate utilizzate dall’istanza. Per risolvere le limitazioni del sistema SSRP, SQL Server 2005 (9.x) ha introdotto il servizio SQL Server Browser in sostituzione di SSRP.
Come funziona SQL Server Browser
Quando un’istanza di SQL Server si avvia, se il protocollo TCP/IP è abilitato per SQL Server, al server viene assegnata una porta TCP/IP. Se il protocollo named pipes è abilitato, SQL Server ascolta su una specifica pipe nominata. Questa porta, o “pipe”, è usata da quella specifica istanza per scambiare dati con le applicazioni client. Durante l’installazione, la porta TCP 1433 e la pipe \sql\query
sono assegnate all’istanza predefinita, ma queste possono essere cambiate successivamente dall’amministratore del server utilizzando SQL Server Configuration Manager. Poiché solo un’istanza di SQL Server può utilizzare una porta o una pipe, vengono assegnati diversi numeri di porta e nomi di pipe per le istanze nominate, incluso SQL Server Express. Per impostazione predefinita, quando abilitata, sia le istanze nominate che SQL Server Express sono configurate per utilizzare porte dinamiche, cioè, una porta disponibile viene assegnata all’avvio di SQL Server. Se si desidera, una porta specifica può essere assegnata a un’istanza di SQL Server. Quando ci si connette, i client possono specificare una porta specifica; ma se la porta è assegnata dinamicamente, il numero di porta può cambiare ogni volta che SQL Server viene riavviato, quindi il numero di porta corretto è sconosciuto al client.
All’avvio, SQL Server Browser si avvia e richiede la porta UDP 1434. SQL Server Browser legge il registro, identifica tutte le istanze di SQL Server sul computer e prende nota delle porte e dei named pipe che usano. Quando un server ha due o più schede di rete, SQL Server Browser restituisce la prima porta abilitata che incontra per SQL Server. SQL Server Browser supporta ipv6 e ipv4.
Quando i client di SQL Server richiedono le risorse di 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 utilizzando la porta o la named pipe dell’istanza desiderata.
Per informazioni sull’avvio e l’arresto del servizio SQL Server Browser, consultare SQL Server Books Online.
Using SQL Server Browser
Se il servizio SQL Server Browser non è in esecuzione, è comunque possibile connettersi a SQL Server se si fornisce il numero di porta corretto o la named pipe. Per esempio, puoi connetterti all’istanza predefinita di SQL Server con TCP/IP se è in esecuzione sulla porta 1433.
Tuttavia, se il servizio SQL Server Browser non è in esecuzione, le seguenti connessioni non funzionano:
-
Tutti i componenti che cercano di connettersi a un’istanza denominata senza specificare tutti i parametri (come la porta TCP/IP o la named pipe).
-
Qualunque componente che genera o passa informazioni sull’istanza del server che potrebbero poi essere usate da altri componenti per riconnettersi.
-
Connettersi a un’istanza denominata senza fornire il numero di porta o la pipe.
-
Connettersi a un’istanza denominata o all’istanza predefinita se non si usa la porta TCP/IP 1433.
-
Il servizio di reindirizzamento OLAP.
-
Enumerare i server in SQL Server Management Studio, Enterprise Manager o Query Analyzer.
Se stai usando SQL Server in uno scenario client-server (per esempio, quando la tua applicazione accede a SQL Server attraverso una rete), se fermi o disabiliti il servizio SQL Server Browser, devi assegnare un numero di porta specifico ad ogni istanza e scrivere il codice della tua applicazione client per usare sempre quel numero di porta. Questo approccio ha i seguenti problemi:
-
È necessario aggiornare e mantenere il codice dell’applicazione client per assicurarsi che si colleghi alla porta corretta.
-
La porta che scegliete per ogni istanza potrebbe essere usata da un altro servizio o applicazione sul server, causando la non disponibilità dell’istanza di SQL Server.
Clustering
QL Server Browser non è una risorsa in cluster e non supporta il failover da un nodo cluster all’altro. Pertanto, nel caso di un cluster, SQL Server Browser deve essere installato e acceso per ogni nodo del cluster. Sui cluster, SQL Server Browser ascolta su IP_ANY.
Nota
In ascolto su IP_ANY, quando si abilita l’ascolto su IP specifici, l’utente deve configurare la stessa porta TCP su ogni IP, perché SQL Server Browser restituisce la prima coppia IP/port che incontra.
Installazione, disinstallazione ed esecuzione dalla riga di comando
Il servizio SQL Server Browser viene disinstallato quando l’ultima istanza di SQL Server viene rimossa.
SQL Server Browser può essere avviato dal prompt dei comandi per la risoluzione dei problemi, utilizzando lo switch -c:
<drive>\<path>\sqlbrowser.exe -c
Security
Account Privileges
SQL Server Browser ascolta su una porta UDP e accetta richieste non autenticate utilizzando SQL Server Resolution Protocol (SSRP). SQL Server Browser dovrebbe essere eseguito nel contesto di sicurezza di un utente con bassi privilegi per minimizzare l’esposizione a un attacco maligno. L’account di accesso può essere cambiato utilizzando il SQL Server Configuration Manager. I diritti utente minimi per SQL Server Browser sono i seguenti:
-
Nega l’accesso a questo computer dalla rete
-
Nega l’accesso locale
-
Nega l’accesso come lavoro batch
-
Nega l’accesso tramite Servizi Terminali
-
Log on come service
-
Leggi e scrivi le chiavi di registro di SQL Server relative alla comunicazione di rete (porte e pipe)
Default Account
Setup configura SQL Server Browser per utilizzare l’account selezionato per i servizi durante la configurazione. Altri possibili account sono i seguenti:
-
Qualsiasi account locale del dominio
-
L’account di servizio locale
-
L’account di sistema locale (non consigliato perché ha privilegi non necessari)
Hiding SQL Server
Le istanze nascoste sono istanze di SQL Server che supportano solo connessioni in memoria condivisa. Per SQL Server, imposta 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 dietro un firewall, apri la porta UDP 1434, oltre alla porta TCP usata da SQL Server (ad esempio, 1433). Per informazioni su come lavorare con un firewall, vedere “Come fare: Configurare un firewall per l’accesso a SQL Server” in SQL Server Books Online.
Vedi anche
Protocolli di rete e librerie di rete