Exemple : Configuration de la mise en miroir de bases de données à l’aide de certificats (Transact-SQL)
Cet exemple décrit toutes les étapes de création d'une session de mise en miroir de bases de données à l'aide de l'authentification basée sur les certificats. Les exemples de cette rubrique utilisent Transact-SQL. À moins que vous ne puissiez garantir la sécurité de votre réseau, il est recommandé d'utiliser le chiffrement pour les connexions de mise en miroir de bases 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 particulièrement à sécuriser tous vos certificats.
Exemple
L'exemple suivant illustre ce qui doit être fait 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 réparties sur trois systèmes informatiques. 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.
Le rôle principal initial est occupé par HOST_A, et le rôle miroir par HOST_B.
La configuration de la mise en miroir de bases de données à l’aide de certificats implique quatre étapes générales, dont les première, deuxième et quatrième sont illustrées par cet exemple. Ces étapes sont les suivantes :
Configuration des connexions sortantes
Cet exemple montre les étapes nécessaires à la :
configuration d'Host_A pour les connexions sortantes ;
configuration d'Host_B pour les connexions sortantes.
Pour plus d’informations sur cette étape de configuration de la mise en miroir de bases de données, consultez Autoriser un point de terminaison de mise en miroir de bases de données à utiliser des certificats pour les connexions sortantes (Transact-SQL).
Configuration des connexions entrantes
Cet exemple montre les étapes nécessaires à la :
configuration d'Host_A pour les connexions entrantes ;
configuration d'Host_B pour les connexions entrantes.
Pour plus d’informations sur cette étape de configuration de la mise en miroir de bases de données, consultez Autoriser un point de terminaison de mise en miroir de bases de données à utiliser des certificats pour les connexions entrantes (Transact-SQL).
Création de la base de données miroir
Pour plus d’informations sur la création d’une base de données miroir, consultez Préparer une base de données miroir pour la mise en miroir (SQL Server).
Configuration des connexions sortantes
Pour configurer Host_A pour les connexions sortantes
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 = '<1_Strong_Password!>'; GO
Activez un certificat pour cette instance de serveur.
USE master; CREATE CERTIFICATE HOST_A_cert WITH SUBJECT = 'HOST_A certificate'; GO
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
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
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
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
Activez un certificat sur l'instance de serveur HOST_B.
CREATE CERTIFICATE HOST_B_cert WITH SUBJECT = 'HOST_B certificate for database mirroring'; GO
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
Sauvegardez le certificat HOST_B.
BACKUP CERTIFICATE HOST_B_cert TO FILE = 'C:\HOST_B_cert.cer'; GO
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 Autoriser un point de terminaison de 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
Créez une connexion sur HOST_A pour HOST_B.
USE master; CREATE LOGIN HOST_B_login WITH PASSWORD = '1Sample_Strong_Password!@#'; GO
--Créez un utilisateur pour cette connexion.
CREATE USER HOST_B_user FOR LOGIN HOST_B_login; GO
--Associez le certificat à l'utilisateur.
CREATE CERTIFICATE HOST_B_cert AUTHORIZATION HOST_B_user FROM FILE = 'C:\HOST_B_cert.cer' GO
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
Créez une connexion sur HOST_B pour HOST_A.
USE master; CREATE LOGIN HOST_A_login WITH PASSWORD = '=Sample#2_Strong_Password2'; GO
Créez un utilisateur pour cette connexion.
CREATE USER HOST_A_user FOR LOGIN HOST_A_login; GO
Associez le certificat à l'utilisateur.
CREATE CERTIFICATE HOST_A_cert AUTHORIZATION HOST_A_user FROM FILE = 'C:\HOST_A_cert.cer' GO
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
Important
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 Autoriser un point de terminaison de mise en miroir de bases de données à utiliser des certificats pour les connexions entrantes (Transact-SQL).
Création de la base de données miroir
Pour plus d’informations sur la création d’une base de données miroir, consultez Préparer une base de données miroir pour la mise en miroir (SQL Server).
Configuration des serveurs partenaires de mise en miroir
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écifier une adresse réseau de serveur (Mise en miroir de bases 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
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
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
Notes
Si vous envisagez d’exécuter en mode haute sécurité avec basculement automatique, laissez la sécurité des transactions définie sur FULL (paramètre par défaut) et ajoutez le témoin dès que possible 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.
Tâches associées
Préparer une base de données miroir pour la mise en miroir (SQL Server)
Gestion des connexions et des travaux après un basculement de rôle (SQL Server)
Résoudre les problèmes de configuration de mise en miroir de bases de données (SQL Server)
Voir aussi
Sécurité du transport de la mise en miroir de bases de données et des groupes de disponibilité AlwaysOn (SQL Server)
Spécifier une adresse réseau de serveur (mise en miroir de bases de données)
Point de terminaison de mise en miroir de bases de données (SQL Server)
Utiliser des certificats pour un point de terminaison de mise en miroir de bases de données (Transact-SQL)
ALTER DATABASE (Transact-SQL)
Centre de sécurité pour le moteur de base de données SQL Server et Azure SQL Database