Partager via


Procédure : créer un point de terminaison de mise en miroir pour l'authentification Windows (Transact-SQL)

Chaque instance de serveur de mise en miroir de base de données nécessite un port d'écoute unique attribué au point de terminaison de mise en miroir de bases de données de l'instance. 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.

Lors de la création du point de terminaison, l'administrateur système spécifie les méthodes d'authentification et de chiffrement de l'instance de serveur.

Important

Si le point de terminaison de mise en miroir de base de données existe et est déjà utilisé, nous vous recommandons d'utiliser ce point de terminaison pour toute session établie sur l'instance du serveur. La suppression d'un point de terminaison en cours d'utilisation perturbe les connexions des sessions existantes. Si un témoin a été défini pour une session, la suppression du point de terminaison de la mise en miroir peut provoquer la perte du quorum par le serveur principal de cette session ; si cela se produit, la base de données est mise en mode hors connexion et ses utilisateurs sont déconnectés. Pour plus d'informations, consultez Quorum : effets d'un témoin sur la disponibilité de la base de données.

Pour créer un point de terminaison de mise en miroir à l'aide de l'authentification Windows

  1. Connectez-vous à l'instance de serveur pour laquelle vous voulez créer un point de terminaison de mise en miroir de base de données.

  2. 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.

  3. 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>

        )

    • <endpointName> représente le nom unique du point de terminaison de mise en miroir de base 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.

    • <listenerPortList> est un numéro de port unique (nnnn) sur lesquel le serveur doit écouter les messages de mise en miroir de base 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. <authorizationMethod> spécifie la méthode utilisée pour authentifier les connexions de l'une des manières 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é. Pour plus d'informations sur ces méthodes, consultez Types d'authentification du point de terminaison.

    • 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.

    • <algorithm> propose la possibilité de spécifier les normes de chiffrement du point de terminaison. La valeur de <algorithm> peut être l'un des algorithmes ou combinaisons d'algorithmes suivants : RC4, AES, AES RC4 ou RC4 AES.

      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.

      [!REMARQUE]

      Bien que sensiblement plus rapide que AES, RC4 est un algorithme relativement faible, tandis que AES est relativement fort. Par conséquent, nous vous recommandons d'utiliser l'algorithme AES.

    • <role> définit le ou les rôles que le serveur peut endosser. La spécification de ROLE est obligatoire.

      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.

      [!REMARQUE]

      Pour SQL Server Express, WITNESS est la seule option disponible.

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

    [!REMARQUE]

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

Exemple

L'exemple suivant crée des points de terminaison 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 serveur 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

Pour voir un exemple complet illustrant la configuration de la sécurité, la préparation de la base de données miroir, la définition des partenaires et l'ajout d'un témoin, consultez Configuration de la mise en miroir d'une base de données.