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

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 2012 à l'aide de Transact-SQL. Pour prendre en charge la mise en miroir de bases de données ou Groupes de disponibilité AlwaysOn, 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.

Remarque relative à la sécuritéRemarque relative à la sécurité

L'algorithme RC4 est déconseillé. Cette fonctionnalité sera supprimée dans une prochaine version de Microsoft SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et modifiez dès que possible 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 GRANT – octroi d'autorisations de point de terminaison (Transact-SQL).

Icône de flèche utilisée avec le lien Retour en haut[Haut de la page]

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 base 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>

        )

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

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

      L'algorithme RC4 est déconseillé. Cette fonctionnalité sera supprimée dans une prochaine version de Microsoft SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et modifiez dès que possible les applications qui utilisent actuellement cette fonctionnalité. Nous vous recommandons d'utiliser AES.

    • <role> 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 Groupes de disponibilité AlwaysOn, 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.

      [!REMARQUE]

      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 2012 (https://go.microsoft.com/fwlink/?linkid=232473).

    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 : 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

Icône de flèche utilisée avec le lien Retour en haut[Haut de la page]

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

Icône de flèche utilisée avec le lien Retour en haut[Haut de la page]

Voir aussi

Référence

ALTER ENDPOINT (Transact-SQL)

CREATE ENDPOINT (Transact-SQL)

Concepts

Choisir un algorithme de chiffrement

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)