Abilitare o disabilitare un protocollo di rete del server

Si applica a: SQL Server - solo Windows

Tutti i protocolli di rete vengono installati dal programma di installazione di SQL Server, ma è possibile abilitarli o meno. In questo articolo viene descritto come abilitare o disabilitare un protocollo di rete del server in SQL Server tramite Gestione configurazione SQL Server o PowerShell. Per rendere effettive le modifiche, è necessario arrestare e riavviare il motore di database.

Osservazioni:

  • Durante l'installazione di SQL Server Express viene aggiunto un account di accesso per il gruppo BUILTIN\Users. L’accesso consente a tutti gli utenti autenticati del computer di accedere all'istanza di SQL Server Express come membri del ruolo pubblico. L'account di accesso BUILTIN\Users può essere rimosso in sicurezza per limitare l'accesso al motore di database da parte di utenti di computer che dispongono di account di accesso singoli o sono membri di altri gruppi di Windows con account di accesso.

  • I provider di dati Microsoft e SQL Server per SQL Server fino a SQL Server 2014 (12.x) supportano solo TLS 1.0 e SSL 3.0 per impostazione predefinita. Se si applica un protocollo diverso (ad esempio TLS 1.1 o TLS 1.2), apportando modifiche nel livello SChannel del sistema operativo, le connessioni a SQL Server potrebbero avere esito negativo se non è stato installato l'aggiornamento appropriato per aggiungere il supporto per TLS 1.1 e 1.2 in SQL Server. Per altre informazioni, vedere KB 3135244. A partire da SQL Server 2016 (13.x), tutte le versioni di rilascio di SQL Server includono il supporto di TLS 1.2 e non richiedono aggiornamenti aggiuntivi.

Usare Gestione configurazione SQL Server

  1. Nel riquadro della console di Gestione configurazione SQL Server espandere Configurazione di rete SQL Server.

  2. Nel riquadro della console selezionare Protocolli per <nome istanza>.

  3. Nel riquadro dei dettagli fare clic con il pulsante destro del mouse sul protocollo da modificare e quindi scegliere Abilita o Disabilita.

  4. Nel riquadro della console selezionare Servizi di SQL Server.

  5. Nel riquadro dei dettagli fare clic con il pulsante destro del mouse su SQL Server (<nome istanza>), quindi scegliere Riavvia per arrestare e riavviare il servizio di SQL Server.

Nota

Se si dispone di un'istanza denominata di SQL Server, compresa l'edizione SQL Server Express, è necessario riavviare anche il servizio SQL Server Browser.

Utilizzare SQL Server PowerShell

Abilitare un protocollo di rete del server utilizzando PowerShell

  1. Aprire un prompt dei comandi con autorizzazioni di amministratore.

  2. Avviare Windows PowerShell dalla barra delle applicazioni o dal menu Start.

  3. Importare il modulo SqlServer immettendo Import-Module SqlServer.

  4. Eseguire le seguenti istruzioni per abilitare i protocolli TCP e Named Pipes. Sostituire <computer_name> con il nome del computer in cui è in esecuzione SQL Server. Se si configura un'istanza denominata (compresa l’edizione SQL Server Express), sostituire MSSQLSERVER con il nome dell'istanza.

    Per disabilitare i protocolli, impostare le proprietà IsEnabled su $false.

    È possibile eseguire questo script da qualsiasi computer, con o senza SQL Server installato. Assicurarsi di avere installato il modulo SqlServer.

    #requires the SqlServer module
    Import-Module SQLServer
    
    $wmi = New-Object Microsoft.SqlServer.Management.Smo.Wmi.ManagedComputer <#computer_name#>
    
    # List the object properties, including the instance names.
    $Wmi
    
    # Enable the TCP protocol on the default instance.
    $uri = "ManagedComputer[@Name='<#computer_name#>']/ServerInstance[@Name='MSSQLSERVER']/ServerProtocol[@Name='Tcp']"
    $Tcp = $wmi.GetSmoObject($uri)
    $Tcp.IsEnabled = $true
    $Tcp.Alter()
    $Tcp
    
    # Enable the named pipes protocol for the default instance.
    $uri = "ManagedComputer[@Name='<#computer_name#>']/ServerInstance[@Name='MSSQLSERVER']/ServerProtocol[@Name='Np']"
    $Np = $wmi.GetSmoObject($uri)
    $Np.IsEnabled = $true
    $Np.Alter()
    $Np
    

Configurare i protocolli per il computer locale

Quando lo script viene eseguito localmente e configura il computer locale, SQL Server PowerShell offre una maggiore flessibilità per lo script determinando dinamicamente il nome del computer locale. Per recuperare il nome del computer locale, sostituire la riga che imposta la variabile $uri con la riga seguente.

$uri = "ManagedComputer[@Name='" + (get-item env:\computername).Value + "']/ServerInstance[@Name='MSSQLSERVER']/ServerProtocol[@Name='Tcp']"

Riavviare il Motore di database tramite SQL Server PowerShell

Dopo aver disabilitato o abilitato i protocolli, è necessario arrestare e riavviare il motore di database per rendere effettiva la modifica. Eseguire le istruzioni seguenti per arrestare e avviare l'istanza predefinita tramite SQL Server PowerShell. Per arrestare e avviare un'istanza denominata, sostituire 'MSSQLSERVER' con 'MSSQL$<instance_name>'.

# Get a reference to the ManagedComputer class.
CD SQLSERVER:\SQL\<computer_name>
$Wmi = (get-item .).ManagedComputer
# Get a reference to the default instance of the Database Engine.
$DfltInstance = $Wmi.Services['MSSQLSERVER']
# Display the state of the service.
$DfltInstance
# Stop the service.
$DfltInstance.Stop();
# Wait until the service has time to stop.
# Refresh the cache.
$DfltInstance.Refresh();
# Display the state of the service.
$DfltInstance
# Start the service again.
$DfltInstance.Start();
# Wait until the service has time to start.
# Refresh the cache and display the state of the service.
$DfltInstance.Refresh();
$DfltInstance

Nota

Se si dispone di un'istanza denominata di SQL Server, compresa l'edizione SQL Server Express, è necessario riavviare anche il servizio SQL Server Browser.