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

S’applique à : SQL Server (toutes les versions prises en charge)

Tous les protocoles réseau sont installés par le programme d'installation de SQL Server , mais ils peuvent être activés ou non. Cette rubrique 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.

Important

Lors de l'installation de SQL Server Express une connexion est ajoutée pour le groupe BUILTIN\Users. Cela 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.

Avertissement

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 avez installé la mise à jour appropriée permettant de prendre en charge TLS 1.1 et 1.2 sur SQL Server, qui se trouve ici. À 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.

Dans cette rubrique

Utilisation du Gestionnaire de configuration SQL Server

Pour activer un protocole réseau de serveur

  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, cliquez sur Protocoles pour<instance name>.

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

  4. Dans le volet de la console, cliquez sur Services SQL Server.

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

Utilisation de SQL Server PowerShell

Pour 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 cliquez successivement sur Démarrer, Tous les Programmes, Accessoires, Windows PowerShell, puis Windows PowerShell.

  3. Importez le module sqlps en entrant Import-Module "sqlps"

  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, remplacez MSSQLSERVER par le nom de cette instance.

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

    $smo = 'Microsoft.SqlServer.Management.Smo.'  
    $wmi = new-object ($smo + 'Wmi.ManagedComputer').  
    
    # 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  
    

Pour 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']"  
    

Pour 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