Condividi tramite


Utilizzo di SQL Server Browser

Data aggiornamento: 5 dicembre 2005

SQL Server Browser viene eseguito come servizio Windows nel server. SQL Server Browser rimane in attesa delle richieste in ingresso di risorse di SQL Server e fornisce informazioni sulle istanze di SQL Server installate nel computer. SQL Server Browser consente di eseguire tre operazioni:

  • Esplorazione di un elenco di server disponibili
  • Connessione all'istanza del server corretta
  • Connessione a endpoint della connessione amministrativa dedicata (DAC, Dedicated Administrator Connection)

Per ogni istanza di Motore di database il servizio SQL Server Browser (sqlbrowser) fornisce il nome dell'istanza e il numero di versione. SQL Server Browser viene installato con SQL Server 2005 e offre informazioni per le versioni precedenti di SQL Server in esecuzione nel computer, a partire da SQL Server 7.0.

Per impostazione predefinita, il servizio SQL Server Browser non è attivato per SQL Server Express. SQL Server Browser può essere inizialmente configurato tramite lo strumento Configurazione superficie di attacco e gestito tramite Gestione configurazione SQL Server.

Informazioni di supporto

Con le versioni che precedono SQL Server 2000 è possibile installare una sola istanza di SQL Server in un computer. SQL Server rimane in attesa delle richieste in ingresso 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 con SQL Server 2000 è stato introdotto il supporto per più istanze di SQL Server, è stato sviluppato il protocollo SSRP (SQL Server Resolution Protocol) per l'attesa sulla porta UDP 1434. Questo servizio di attesa risponde alle richieste dei 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 o VIA è attivato per SQL Server, al server viene assegnata una porta TCP/IP. Se è attivato il protocollo Named Pipes, SQL Server rimane in attesa su una named pipe specifica. Questa porta o pipe verrà utilizzata dall'istanza specifica per gli scambi di dati con le applicazioni client. Durante l'installazione, la porta 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é una sola 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, le istanze denominate sono configurate per l'utilizzo di porte dinamiche, ovvero viene assegnata una porta disponibile all'avvio di SQL Server. È possibile assegnare una porta specifica a un'istanza di SQL Server. Al momento della connessione, i client possono specificare la porta desiderata. Tuttavia, se la porta viene assegnata in modo dinamico, il numero di porta può essere diverso 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 tutte le porte attivate per SQL Server. SQL Server 2005 e SQL Server Browser supportano ipv6 e ipv4.

Quando i client di SQL Server 2000 e SQL Server 2005 richiedono le risorse di SQL Server, la libreria di rete del 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.

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 sulla porta 1433.

Non funzionano le connessioni seguenti:

  • Qualsiasi componente che tenta di attivare una 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 sul server o l'istanza, che potrebbero essere utilizzate in seguito da altri componenti per attivare nuovamente la connessione.
  • Connessione a un'istanza denominata senza indicare il numero di porta o la pipe. Sono inclusi il mirroring dei dati in un'istanza denominata e il clustering di un'istanza denominata.
  • Connessioni amministrative dedicate a un'istanza denominata o all'istanza predefinita se non si utilizza la porta TCP/IP 1434.
  • 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 interrompe o disattiva 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.

Installazione affiancata con SQL Server 2000

In SQL Server 2000 l'identificazione degli endpoint della connessione del server viene eseguita dal servizio SQL Server. In SQL Server 2005 questa funzione è stata sostituita dal servizio SQL Server Browser. Se si installa SQL Server in un computer in cui è in esecuzione anche SQL Server 2000 o MSDE, è necessario aggiornare questi sistemi al livello SP3 o successivo. Le versioni precedenti a SP3 non assicurano la condivisione corretta della porta 1434 e potrebbero rendere le istanze di SQL Server non disponibili per le richieste provenienti dalle applicazioni client. Benché sia possibile modificare l'ordine di avvio dei servizi affinché il servizio SQL Server Browser venga avviato prima di SQL Server 2000 o MSDE, la soluzione consigliata consiste nell'aggiornare tutte le versioni meno recenti di SQL Server alla versione più recente del service pack.

Quando viene installata un'istanza di SQL Server 2000 non aggiornata al più recente Service Pack 3a nel computer, se il servizio SQL Server Browser non è in esecuzione, viene avviato il servizio di attesa di SQL Server 2000. Se SQL Server Browser viene avviato dopo il servizio di attesa, attende cinque secondi che SQL Server 2000 ceda la porta 1434. Se ciò non si verifica, SQL Server Browser non viene avviato. Per risolvere questo problema con le versioni di SQL Server 2000 precedenti alla SP3a, interrompere SQL Server 2000, avviare SQL Server Browser e quindi riavviare SQL Server 2000. Poiché il servizio di attesa di SQL Server 2000 continua a tentare l'avvio sulla porta 1434, è consigliabile aggiornare l'istanza di SQL Server 2000 a SP3a o versione successiva non appena possibile.

SQL Server 7.0 non provoca conflitti con SQL Server Browser.

Installazione, disinstallazione ed esecuzione dalla riga di comando

Per impostazione predefinita, il programma SQL Server Browser viene installato in C:\Program Files\Microsoft SQL Server\90\Shared\sqlbrowser.exe. Se nel computer è installato SQL Server 2000 ma non è aggiornato a SP3 e l'istanza di SQL Server 2000 non viene aggiornata, è consigliabile interrompere SQL Server 2000 durante l'installazione di SQL Server 2005. Se SQL Server 2000 è in esecuzione, SQL Server Browser non può essere avviato né richiedere la porta 1434 e l'installazione potrebbe avere esito negativo a causa dell'assenza di connettività.

Il servizio SQL Server Browser viene disinstallato quando viene rimossa l'ultima istanza di SQL Server 2005. In questo caso, le istanze di SQL Server 2000 riprenderanno il funzionamento originale.

SQL Server Browser può essere avviato dalla riga di comando, a scopo di risoluzione dei problemi, utilizzando l'opzione -c.

<drive>\<path>\sqlbrowser.exe -c

Protezione

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 protezione di un utente con privilegi di basso livello per ridurre l'esposizione agli attacchi da parte di utenti malintenzionati. Per impostazione predefinita, SQL Server Browser viene avviato tramite l'account di sistema locale. È possibile modificare l'account di accesso utilizzando il programma Servizi di Windows. 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:

  • Qualsiasi account di dominio\locale
  • Account di servizio locale (non disponibile nelle piattaforme W2K)
  • Account di sistema locale (non consigliato, in quanto include privilegi non necessari)

Istanze nascoste di SQL Server

Le istanze nascoste sono istanze di SQL Server che supportano solo connessioni Shared Memory. Per SQL Server 2005, la chiave del Registro di sistema HideInstance indica che SQL Server Browser non deve rispondere inviando alcuna informazione su questa istanza del server. SQL Server Browser supporta inoltre il metodo di SQL Server 2000 per nascondere le istanze attivate impostando l'opzione HideServer tramite l'utilità di configurazione di rete del server. Per ulteriori informazioni, vedere Procedura: Nascondere un'istanza del Motore di database di SQL Server nella documentazione in linea di SQL Server 2005.

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 ulteriori informazioni, vedere Procedura: Configurazione di un firewall per l'accesso a SQL Server nella documentazione in linea di SQL Server 2005.

Vedere anche

Attività

Procedura: Avvio e interruzione del servizio SQL Server Browser (SQL Server Express)

Guida in linea e informazioni

Assistenza su SQL Server 2005