Activer ou désactiver un protocole réseau de serveur

S’applique à :SQL Server - Windows uniquement

Tous les protocoles réseau sont installés pendant l’installation par le programme d’installation de SQL Server. Il est possible de les activer ou non. Cet article décrit comment activer ou désactiver un protocole réseau de serveur dans SQL Server à l’aide du Gestionnaire de configuration SQL Server ou de PowerShell. Le Moteur de base de données doit être arrêté et redémarré pour que la modification soit prise en compte.

Notes

  • Lors de l’installation de l’édition SQL Server Express, une connexion est ajoutée pour le groupe BUILTIN\Users. Cette connexion permet à tous les utilisateurs authentifiés sur l’ordinateur d’accéder à l’instance de SQL Server Express en tant que membres du rôle public. La connexion BUILTIN\Users peut être supprimée sans risque pour restreindre l'accès au Moteur de base de données aux utilisateurs de l'ordinateur qui disposent de connexions ou qui sont membres d'autres groupes Windows avec des connexions.

  • Les fournisseurs de données SQL Server et Microsoft uniquement pour SQL Server à SQL Server 2014 (12.x) prennent en charge TLS 1.0 et SSL 3.0 par défaut. Si vous appliquez un autre protocole (comme TLS 1.1 ou TLS 1.2) en apportant des modifications dans la couche SChannel du système d’exploitation, vos connexions à SQL Server risquent d’échouer, sauf si vous installez la mise à jour appropriée permettant de prendre en charge TLS 1.1 et 1.2 sur SQL Server. Pour plus d’informations, consultez KB 3135244. À partir de SQL Server 2016 (13.x), toutes les versions de SQL Server incluent la prise en charge de TLS 1.2 sans aucune mise à jour supplémentaire nécessaire.

Utiliser le Gestionnaire de configuration SQL Server

  1. Dans le Gestionnaire de configuration SQL Server, dans le volet de la console, développez Configuration du réseau SQL Server.

  2. Dans le volet de la console, sélectionnez Protocoles pour <nom de l’instance>.

  3. Dans le volet d’informations, cliquez avec le bouton droit sur le protocole à modifier, puis sélectionnez Activer ou Désactiver.

  4. Dans le volet de la console, sélectionnez Services SQL Server.

  5. Dans le volet d’informations, cliquez avec le bouton droit sur SQL Server (<nom de l’instance>), puis sélectionnez Redémarrer pour arrêter et redémarrer le service SQL Server.

Notes

Si vous utilisez une instance nommée de SQL Server, notamment l’édition SQL Server Express, vous devez également redémarrer le service SQL Server Browser.

Utiliser SQL Server PowerShell

Activer un protocole réseau de serveur à l’aide de PowerShell

  1. En utilisant des autorisations d’administrateur, ouvrez une invite de commandes.

  2. Démarrez Windows PowerShell à partir de la barre des tâches ou du menu Démarrer.

  3. Importez le module SqlServer en saisissant Import-Module SqlServer.

  4. Exécutez les instructions suivantes pour activer les protocoles TCP et de canaux nommés. Remplacez <computer_name> par le nom de l'ordinateur qui exécute SQL Server. Si vous configurez une instance nommée (notamment l’édition SQL Server Express), remplacez MSSQLSERVER par le nom de l’instance.

    Pour désactiver des protocoles, affectez aux propriétés IsEnabled la valeur $false.

    Vous pouvez exécuter ce script à partir de n’importe quel ordinateur, avec ou sans SQL Server. Assurez-vous que le module SqlServer est installé.

    #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
    

Configurer les protocoles pour l’ordinateur local

Lorsque le script est exécuté localement et configure l'ordinateur local, SQL Server PowerShell peut rendre le script plus souple en déterminant de façon dynamique le nom de l'ordinateur local. Pour récupérer le nom de l'ordinateur local, remplacez la ligne qui définit la variable $uri par la ligne suivante.

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

Redémarrer le moteur de base de données à l’aide de SQL Server PowerShell

Après avoir activé ou désactivé des protocoles, vous devez arrêter et redémarrer le Moteur de base de données pour que la modification entre en vigueur. Exécutez les instructions suivantes pour arrêter et démarrer l'instance par défaut à l'aide de SQL Server PowerShell. Pour arrêter et démarrer une instance nommée, remplacez 'MSSQLSERVER' par '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

Notes

Si vous utilisez une instance nommée de SQL Server, notamment l’édition SQL Server Express, vous devez également redémarrer le service SQL Server Browser.