Créer un point de terminaison de mise en miroir de bases de données pour l'authentification Windows (Transact-SQL)

S’applique à :SQL Server

Cette rubrique explique comment créer un point de terminaison de mise en miroir de bases de données qui utilise l’authentification Windows dans SQL Server avec Transact-SQL. Pour prendre en charge la mise en miroir de bases de données ou les groupes de disponibilité Always On, chaque instance de SQL Server nécessite un point de terminaison de mise en miroir de bases de données. Une instance de serveur ne peut disposer que d'un seul point de terminaison de mise en miroir de bases de données, lequel possède un port unique. Un point de terminaison de mise en miroir de bases de données peut utiliser n'importe quel point disponible sur le système local lors de la création du point de terminaison. Toutes les sessions de mise en miroir des bases de données sur une instance de serveur écoutent ce port, et toutes les connexions entrantes pour la mise en miroir des bases de données utilisent ce port.

Important

Si un point de terminaison de mise en miroir de bases de données existe et est déjà utilisé, nous vous recommandons de l'utiliser. La suppression d'un point de terminaison en cours d'utilisation interrompt les sessions existantes.

Dans cette rubrique

  • Avant de commencer :Sécurité

  • Pour créer un point de terminaison de mise en miroir de bases de données, utilisez :Transact-SQL

Avant de commencer

Sécurité

Les méthodes d'authentification et de chiffrement d'instance de serveur sont établies par l'administrateur système.

Avertissement

L'algorithme RC4 est déconseillé. Cette fonctionnalité sera supprimée dans une version future de SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité. Nous vous recommandons d'utiliser AES.

Autorisations

Requiert l’autorisation CREATE ENDPOINT ou l’appartenance au rôle serveur fixe sysadmin. Pour plus d’informations, consultez Autorisations de point de terminaison GRANT (Transact-SQL).

Utilisation de Transact-SQL

Pour créer un point de terminaison de mise en miroir de bases de données qui utilise l'authentification Windows

  1. Connectez-vous à l’instance de SQL Server sur laquelle vous voulez créer un point de terminaison de mise en miroir de bases de données.

  2. Dans la barre d'outils standard, cliquez sur Nouvelle requête.

  3. Déterminez s'il existe déjà un point de terminaison de mise en miroir de base de données à l'aide de l'instruction suivante :

    SELECT name, role_desc, state_desc FROM sys.database_mirroring_endpoints;   
    

    Important

    S'il existe déjà un point de terminaison de mise en miroir de base de données pour l'instance de serveur, utilisez-le pour toutes les autres sessions établies sur l'instance de serveur.

  4. Pour utiliser Transact-SQL afin de créer un point de terminaison qui sera utilisé avec l’authentification Windows, utilisez une instruction CREATE ENDPOINT. L'instruction prend la forme générale suivante :

    CREATE ENDPOINT *\<endpointName>*  
    
    STATE=STARTED  
    
    AS TCP ( LISTENER_PORT = *\<listenerPortList>* )  
    
    FOR DATABASE_MIRRORING  
    
    (  
    
    [ AUTHENTICATION = **WINDOWS** [ *\<authorizationMethod>* ]  
    
    ]  
    
    [ [**,**] ENCRYPTION = **REQUIRED**  
    
    [ ALGORITHM { *\<algorithm>* } ]  
    
    ]  
    
    [**,**] ROLE = *\<role>*  
    
    )  
    

    Où :

    • <nom_point_de_terminaison> est un nom unique pour le point de terminaison de mise en miroir de bases de données de l’instance de serveur.

    • STARTED spécifie que le point de terminaison doit être démarré et commencer à écouter les connexions. Un point de terminaison de mise en miroir de base de données est en général créé dans l'état STARTED. D'une autre manière, vous pouvez démarrer une session dans un état STOPPED (par défaut) ou DISABLED.

    • <liste_ports_écoute> est un numéro de port unique (nnnn) sur lequel le serveur doit écouter les messages de mise en miroir de bases de données. Seul le protocole TCP est autorisé ; la spécification d'un autre protocole produit une erreur.

      Un numéro de port peut servir une fois seulement pour chaque ordinateur. Un point de terminaison de mise en miroir de bases de données peut utiliser n'importe quel point disponible sur le système local lors de la création du point de terminaison. Pour identifier les ports en cours d'utilisation par les points de terminaison TCP, utilisez l'instruction Transact-SQL suivante :

      SELECT name, port FROM sys.tcp_endpoints;  
      

      Important

      Chaque instance de serveur nécessite un port d'écoute et un seul.

    • Pour l'authentification Windows, l'option AUTHENTICATION est facultative, à moins que vous vouliez que le point de terminaison utilise uniquement NTLM ou Kerberos pour authentifier les connexions. <méthode_autorisation> spécifie la méthode utilisée pour authentifier les connexions comme étant une des suivantes : NTLM, KERBEROS ou NEGOTIATE. NEGOTIATE, méthode par défaut, impose au point de terminaison d'utiliser le protocole de négociation Windows pour choisir NTLM ou Kerberos. La négociation active les connexions avec ou sans authentification, selon le niveau d'authentification du point de terminaison opposé.

      Notes

      Pour utiliser l’authentification Kerberos pour la communication entre les points de terminaison de groupe de disponibilité, inscrivez un nom de principal de service pour les connexions Kerberos pour les points de terminaison de mise en miroir de bases de données utilisés par le groupe de disponibilité.

    • ENCRYPTION est défini sur REQUIRED par défaut. En d'autres termes, toutes les connexions à ce point de terminaison doivent utiliser le chiffrement. Toutefois, vous pouvez désactiver le chiffrement ou le rendre facultatif sur un point de terminaison. Les alternatives sont les suivantes :

      Valeur Définition
      DISABLED Spécifie que les données envoyées sur une connexion ne sont pas chiffrées.
      SUPPORTED Spécifie que les données sont chiffrées uniquement si le point de terminaison opposé spécifie SUPPORTED ou REQUIRED.
      REQUIRED Spécifie que les données envoyées sur une connexion doivent être chiffrées.

      Si un point de terminaison exige un chiffrement, l'autre point de terminaison doit avoir l'instruction ENCRYPTION définie sur SUPPORTED ou REQUIRED.

    • <algorithme> permet de spécifier les normes de chiffrement du point de terminaison. La valeur de <algorithme> peut être un des algorithmes ou combinaisons d’algorithmes suivants : RC4, AES, AES RC4 ou RC4 AES.

      L’algorithme AES pour le point de terminaison de mise en miroir de bases de données utilise une longueur de clé de 128 bits.

      AES RC4 spécifie que ce point de terminaison va négocier l'algorithme de chiffrement et donner la préférence à l'algorithme AES. RC4 AES spécifie que ce point de terminaison va négocier l'algorithme de chiffrement et donner la préférence à l'algorithme RC4. Si les deux points de terminaison spécifient les deux algorithmes mais dans des ordres différents, le point de terminaison acceptant la connexion a le dernier mot. Entrez le même algorithme de manière explicite pour éviter les erreurs de connexion entre les différents serveurs.

      Avertissement

      L'algorithme RC4 est déconseillé. Cette fonctionnalité sera supprimée dans une version future de SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité. Nous vous recommandons d'utiliser AES.

    • <rôle> définit le ou les rôles que le serveur peut endosser. La spécification de ROLE est obligatoire. Toutefois, le rôle du point de terminaison concerne uniquement la mise en miroir de bases de données. Pour les groupes de disponibilité Always On, le rôle du point de terminaison est ignoré.

      Pour qu'une instance de serveur puisse occuper un rôle pour une session de mise en miroir de base de données et un rôle différent pour une autre session, spécifiez ROLE=ALL. Pour restreindre la fonction d’une instance de serveur à partenaire ou à témoin, spécifiez ROLE = PARTNER ou ROLE = WITNESS, respectivement.

      Notes

      Pour plus d’informations sur les options de mise en miroir de bases de données des différentes éditions de SQL Server, consultez Fonctionnalités prises en charge par les éditions de SQL Server 2016.

    Pour une description complète de la syntaxe de CREATE ENDPOINT, consultez CREATE ENDPOINT (Transact-SQL).

    Notes

    Pour modifier un point de terminaison existant, utilisez ALTER ENDPOINT (Transact-SQL).

Exemple : Création de points de terminaison pour prendre en charge la mise en miroir de bases de données (Transact-SQL)

L'exemple suivant crée des points de terminaison de mise en miroir de bases de données pour les instances de serveur par défaut sur trois systèmes informatiques distincts :

Rôle de l'instance de serveur Nom de l'ordinateur hôte
Partenaire (au départ, dans le rôle de principal) SQLHOST01\.
Partenaire (au départ, dans le rôle de serveur miroir) SQLHOST02\.
Témoin SQLHOST03\.

Dans cet exemple, les trois points de terminaison utilisent le numéro de port 7022, bien que n'importe quel autre numéro de port disponible pourrait convenir. L'option AUTHENTICATION est inutile puisque les points de terminaison utilisent le type par défaut, c'est-à-dire l'authentification Windows. L'option ENCRYPTION est également inutile dans la mesure où la négociation de la méthode d'authentification d'une connexion est prévue sur tous les points de terminaison, ce qui correspond au comportement par défaut de l'authentification Windows. Également caractéristique de ce comportement par défaut, le chiffrement est obligatoire sur tous les points de terminaison.

Chaque instance de serveur est limitée à un rôle exclusif de partenaire ou de témoin, ce rôle est expressément spécifié par le point de terminaison de chaque serveur (ROLE=PARTNER ou ROLE=WITNESS).

Important

Chaque instance de serveur ne peut disposer que d'un seul point de terminaison. Ainsi, pour utiliser une instance de serveur tour à tour comme partenaire dans certaines sessions ou témoin dans d'autres, spécifiez ROLE=ALL.

--Endpoint for initial principal server instance, which  
--is the only server instance running on SQLHOST01.  
CREATE ENDPOINT endpoint_mirroring  
    STATE = STARTED  
    AS TCP ( LISTENER_PORT = 7022 )  
    FOR DATABASE_MIRRORING (ROLE=PARTNER);  
GO  
--Endpoint for initial mirror server instance, which  
--is the only server instance running on SQLHOST02.  
CREATE ENDPOINT endpoint_mirroring  
    STATE = STARTED  
    AS TCP ( LISTENER_PORT = 7022 )  
    FOR DATABASE_MIRRORING (ROLE=PARTNER);  
GO  
--Endpoint for witness server instance, which  
--is the only server instance running on SQLHOST03.  
CREATE ENDPOINT endpoint_mirroring  
    STATE = STARTED  
    AS TCP ( LISTENER_PORT = 7022 )  
    FOR DATABASE_MIRRORING (ROLE=WITNESS);  
GO  

Tâches associées

Pour configurer un point de terminaison de mise en miroir de bases de données

Pour afficher des informations sur le point de terminaison de mise en miroir de bases de données

Voir aussi

ALTER ENDPOINT (Transact-SQL)
Choisir un algorithme de chiffrement
CREATE ENDPOINT (Transact-SQL)
Spécifier une adresse réseau de serveur (mise en miroir de bases de données)
Exemple : configurer la mise en miroir de bases de données à l'aide de l'authentification Windows (Transact-SQL)
Point de terminaison de mise en miroir de bases de données (SQL Server)