Exemple : configuration de la mise en miroir d'une base de données à l'aide de certificats (Transact-SQL)

Cet exemple décrit toutes les étapes de la création d'une session de mise en miroir de bases de données avec un témoin à l'aide de certificats. Les exemples de cette rubrique utilisent Transact-SQL. Si vous ne pouvez pas garantir la sécurité de votre réseau, il est recommandé d'utiliser le chiffrement pour les connexions de mise en miroir de base de données.

Lors de la copie d'un certificat sur un autre système, utilisez une méthode de copie sécurisée. Veillez avec la plus grande rigueur à préserver la sécurité de vos certificats.

Exemple

L'exemple suivant illustre les opérations à effectuer sur un serveur partenaire qui réside sur HOST_A. Dans cet exemple, les deux serveurs partenaires sont les instances de serveur par défaut sur trois ordinateurs. Les deux instances de serveur sont exécutées dans des domaines Windows non approuvés, par conséquent l'authentification basée sur les certificats est nécessaire.

Dans l'exemple suivant, le rôle principal initial est occupé par HOST_A, et le rôle miroir par HOST_B.

Configuration des connexions sortantes

Pour configurer Host_A pour les connexions sortantes
  1. Dans la base de données master, créez la clé principale de base de données, si nécessaire.

    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<1_Strong_Password!>';
    GO
    
  2. Activez un certificat pour cette instance de serveur.

    USE master;
    CREATE CERTIFICATE HOST_A_cert 
       WITH SUBJECT = 'HOST_A certificate';
    GO
    
  3. Créez un point de terminaison de mise en miroir pour l'instance de serveur à l'aide du certificat.

    CREATE ENDPOINT Endpoint_Mirroring
       STATE = STARTED
       AS TCP (
          LISTENER_PORT=7024
          , LISTENER_IP = ALL
       ) 
       FOR DATABASE_MIRRORING ( 
          AUTHENTICATION = CERTIFICATE HOST_A_cert
          , ENCRYPTION = REQUIRED ALGORITHM AES
          , ROLE = ALL
       );
    GO
    
  4. Sauvegardez le certificat HOST_A, et copiez-le sur l'autre système, HOST_B.

    BACKUP CERTIFICATE HOST_A_cert TO FILE = 'C:\HOST_A_cert.cer';
    GO
    
  5. Au moyen d'une méthode sécurisée de copie quelconque, copiez C:\HOST_A_cert.cer sur HOST_B.

Pour configurer Host_B pour les connexions sortantes
  1. Dans la base de données master, créez la clé principale de base de données, si nécessaire.

    USE master;
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<Strong_Password_#2>';
    GO
    
  2. Activez un certificat sur l'instance de serveur HOST_B.

    CREATE CERTIFICATE HOST_B_cert 
       WITH SUBJECT = 'HOST_B certificate for database mirroring';
    GO
    
  3. Créez un point de terminaison de mise en miroir pour l'instance de serveur sur HOST_B.

    CREATE ENDPOINT Endpoint_Mirroring
       STATE = STARTED
       AS TCP (
          LISTENER_PORT=7024
          , LISTENER_IP = ALL
       ) 
       FOR DATABASE_MIRRORING ( 
          AUTHENTICATION = CERTIFICATE HOST_B_cert
          , ENCRYPTION = REQUIRED ALGORITHM AES
          , ROLE = ALL
       );
    GO
    
  4. Sauvegardez le certificat HOST_B.

    BACKUP CERTIFICATE HOST_B_cert TO FILE = 'C:\HOST_B_cert.cer';
    GO 
    
  5. Au moyen d'une méthode sécurisée de copie quelconque, copiez C:\HOST_B_cert.cer sur HOST_A.

Pour plus d'informations, consultez Procédure : autoriser la mise en miroir de bases de données à utiliser des certificats pour les connexions sortantes (Transact-SQL).

Configuration des connexions entrantes

Pour configurer Host_A pour les connexions entrantes
  1. Créez une connexion sur HOST_A pour HOST_B.

    USE master;
    CREATE LOGIN HOST_B_login WITH PASSWORD = '1Sample_Strong_Password!@#';
    GO
    
  2. --Créez un utilisateur pour cette connexion.

    CREATE USER HOST_B_user FOR LOGIN HOST_B_login;
    GO
    
  3. --Associez le certificat à l'utilisateur.

    CREATE CERTIFICATE HOST_B_cert
       AUTHORIZATION HOST_B_user
       FROM FILE = 'C:\HOST_B_cert.cer'
    GO
    
  4. Accordez l'autorisation CONNECT à la connexion pour le point de terminaison de mise en miroir distant.

    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_B_login];
    GO
    
Pour configurer Host_B pour les connexions entrantes
  1. Créez une connexion sur HOST_B pour HOST_A.

    USE master;
    CREATE LOGIN HOST_A_login WITH PASSWORD = '=Sample#2_Strong_Password2';
    GO
    
  2. Création d'un utilisateur pour cette connexion

    CREATE USER HOST_A_user FOR LOGIN HOST_A_login;
    GO
    
  3. Associez le certificat à l'utilisateur.

    CREATE CERTIFICATE HOST_A_cert
       AUTHORIZATION HOST_A_user
       FROM FILE = 'C:\HOST_A_cert.cer'
    GO
    
  4. Accordez l'autorisation CONNECT à la connexion pour le point de terminaison de mise en miroir distant.

    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_A_login];
    GO
    
ms191140.note(fr-fr,SQL.90).gifImportant :
Si vous envisagez d'utiliser le mode haute sécurité avec basculement automatique, vous devez répéter les mêmes étapes pour configurer le témoin pour les connexions sortantes et entrantes. La configuration des connexions entrantes lorsqu'un serveur témoin est impliqué suppose de configurer les connexions et les utilisateurs du serveur témoin sur les deux serveurs partenaires, ainsi que les connexions et les utilisateurs des deux serveurs partenaires sur le serveur témoin.

Pour plus d'informations, consultez Procédure : autoriser la mise en miroir de bases de données afin d'utiliser les certificats pour les connexions entrantes (Transact-SQL).

Création de la base de données miroir

Pour obtenir des informations sur la création d'une base de données miroir, consultez Procédure : préparer une base de données miroir pour la mise en miroir (Transact-SQL).

Configuration des serveurs partenaires de mise en miroir

  1. Sur l'instance de serveur miroir de HOST_B, définissez l'instance de serveur de HOST_A en tant que serveur partenaire (en faisant d'elle l'instance initiale de serveur principal). Remplacez une adresse réseau valide par TCP://HOST_A.Mydomain.Corp.Adventure-Works.com:7024. Pour plus d'informations, consultez Spécification d'une adresse réseau de serveur (mise en miroir de base de données).

    --At HOST_B, set server instance on HOST_A as partner (principal server):
    ALTER DATABASE AdventureWorks 
        SET PARTNER = 'TCP://HOST_A.Mydomain.Corp.Adventure-Works.com:7024';
    GO
    
  2. Sur l'instance de serveur principal de HOST_A, définissez l'instance de serveur de HOST_B en tant que serveur partenaire (en faisant d'elle l'instance initiale de serveur miroir). Remplacez une adresse réseau valide par TCP://HOST_B.Mydomain.Corp.Adventure-Works.com:7024.

    --At HOST_A, set server instance on HOST_B as partner (mirror server).
    ALTER DATABASE AdventureWorks 
        SET PARTNER = 'TCP://HOST_B.Mydomain.Corp.Adventure-Works.com:7024';
    GO
    
  3. Cet exemple suppose que la session est exécutée en mode hautes performances. Pour configurer cette session au mode hautes performances, sur l'instance de serveur principal (sur HOST_A), désactivez la sécurité des transactions.

    --Change to high-performance mode by turning off transacton safety.
    ALTER DATABASE AdventureWorks 
        SET PARTNER SAFETY OFF
    GO
    
    ms191140.note(fr-fr,SQL.90).gifRemarque :
    Si vous envisagez d'utiliser le mode haute sécurité avec basculement automatique, laissez la sécurité des transactions définie sur FULL (valeur par défaut) et ajoutez dès que possible le témoin après l'exécution de la deuxième instruction SET PARTNER 'partner_server'. Notez que le serveur témoin doit d'abord être configuré pour les connexions sortantes et entrantes.

Voir aussi

Tâches

Procédure : autoriser la mise en miroir de bases de données afin d'utiliser les certificats pour les connexions entrantes (Transact-SQL)
Procédure : autoriser la mise en miroir de bases de données à utiliser des certificats pour les connexions sortantes (Transact-SQL)
Procédure : préparer une base de données miroir pour la mise en miroir (Transact-SQL)

Concepts

Sécurité du transport de la mise en miroir de bases de données
Spécification d'une adresse réseau de serveur (mise en miroir de base de données)
Point de terminaison de mise en miroir de bases de données
Utilisation de certificats pour la mise en miroir de bases de données
Préparation d'une base de données miroir pour la mise en miroir
Gestion de la mise en miroir de bases de données (SQL Server Management Studio)
Gestion des métadonnées lors de la mise à disposition d'une base de données sur une autre instance de serveur
Dépannage de l'établissement d'une mise en miroir de bases de données

Autres ressources

ALTER DATABASE (Transact-SQL)
Considérations de sécurité pour SQL Server

Aide et Informations

Assistance sur SQL Server 2005