Mise en miroir de bases de données - Utiliser des certificats pour les connexions sortrantes
S'applique à : SQL Server
Cette rubrique explique comment configurer les instances de serveur de sorte qu'elles utilisent des certificats pour authentifier les connexions sortantes de la mise en miroir de bases de données. La configuration des connexions sortantes doit être effectuée avant celle des connexions entrantes.
Notes
Toutes les connexions de mise en miroir situées sur une instance du serveur utilisent un point de terminaison de mise en miroir de bases de données unique, et vous devez spécifier la méthode d'authentification de l'instance du serveur au moment de la création de ce point de terminaison.
Le processus de configuration des connexions sortantes comprend les étapes générales suivantes :
Dans la base de données MASTER , créez une clé principale de base de données.
Dans la base de données master , créez un certificat chiffré sur l’instance du serveur.
Créez un point de terminaison pour l'instance du serveur à l'aide de son certificat.
Sauvegardez le certificat dans un fichier et copiez-le par sécurité sur un ou plusieurs autres systèmes.
Vous devez exécuter cette procédure pour chaque partenaire et pour le témoin éventuel.
La procédure suivante décrit ces étapes en détail. Pour chaque étape, la procédure fournit un exemple de configuration d'une instance du serveur sur un système nommé HOST_A. La section Exemple qui l'accompagne explique les mêmes étapes pour une autre instance du serveur sur un système nommé HOST_B.
Procédure
Pour configurer les instances du serveur pour les connexions de mise en miroir sortantes (sur HOST_A)
Dans la base de données MASTER , créez la clé principale de base de données, s’il n’en existe aucune. Pour afficher les clés existantes d’une base de données, utilisez l’affichage catalogue sys.symmetric_keys .
Pour créer la clé principale de base de données, utilisez la commande Transact-SQL suivante :
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<1_Strong_Password!>'; GO
Utilisez un mot de passe fort et unique, puis enregistrez-le dans un lieu sûr.
Pour plus d’informations, consultez CREATE MASTER KEY (Transact-SQL) et Créer une clé principale de base de données.
Dans la base de données MASTER, créez un certificat chiffré sur l’instance de serveur à utiliser pour ses connexions sortantes de la mise en miroir de bases de données.
Par exemple, pour créer un certificat pour le système HOST_A :
Important
Si vous envisagez d'utiliser le certificat pendant plusieurs années, spécifiez la date d'expiration en heure UTC à l'aide de l'option EXPIRY_DATE dans votre instruction CREATE CERTIFICATE. Nous vous recommandons également d'utiliser SQL Server Management Studio pour créer une règle de gestion basée sur des stratégies pour vous alerter lorsque vos certificats expirent. À l’aide de la boîte de dialogue de gestion de la stratégie Créer une nouvelle condition , créez cette règle sur le champ @ExpirationDate de la facette Certificat . Pour plus d’informations, consultez Administrer des serveurs à l’aide de la gestion basée sur des stratégies et Sécurisation de SQL Server.
USE master; CREATE CERTIFICATE HOST_A_cert WITH SUBJECT = 'HOST_A certificate for database mirroring', EXPIRY_DATE = '11/30/2013'; GO
Pour plus d’informations, consultez CREATE CERTIFICATE (Transact-SQL).
Pour afficher les certificats stockés dans la base de données MASTER, vous pouvez utiliser les instructions Transact-SQL suivantes :
USE master; SELECT * FROM sys.certificates;
Pour plus d’informations, consultez sys.certificates (Transact-SQL).
Vérifiez que le point de terminaison de mise en miroir de bases de données existe sur chacune des instances de serveur.
Si un point de terminaison de mise en miroir de bases de données existe déjà pour l'instance de serveur, vous devez le réutiliser pour toutes les autres sessions que vous établissez sur cette instance. Pour déterminer si un point de terminaison de mise en miroir de bases de données existe sur une instance de serveur et pour afficher sa configuration, utilisez l'instruction suivante :
SELECT name, role_desc, state_desc, connection_auth_desc, encryption_algorithm_desc FROM sys.database_mirroring_endpoints;
Si aucun point de terminaison n'existe, créez un point de terminaison qui utilise ce certificat pour les connexions sortantes et qui a recours à ses informations d'identification à des fins de vérification sur l'autre système. Il s'agit d'un point de terminaison de niveau serveur utilisé par toutes les sessions de mise en miroir auxquelles participe l'instance de serveur.
L'instruction suivante permet de créer un point de terminaison de mise en miroir pour l'exemple d'instance de serveur de HOST_A :
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
Pour plus d’informations, consultez CREATE ENDPOINT (Transact-SQL).
Sauvegardez le certificat et copiez-le sur le ou les autres systèmes. Cette opération est nécessaire pour configurer les connexions entrantes sur l'autre système.
BACKUP CERTIFICATE HOST_A_cert TO FILE = 'C:\HOST_A_cert.cer'; GO
Pour plus d’informations, consultez BACKUP CERTIFICATE (Transact-SQL).
Copiez ce certificat en utilisant la méthode sécurisée de votre choix. Veillez particulièrement à sécuriser tous vos certificats.
L'exemple de code des étapes précédentes configure des connexions sortantes sur HOST_A.
Vous devez maintenant effectuer les étapes équivalentes pour configurer des connexions sortantes sur HOST_B. Ces étapes sont illustrées dans la section « Exemple » ci-après.
Exemple
L'exemple ci-dessous illustre la configuration de HOST_B pour la prise en charge des connexions sortantes.
USE master;
--Create the database Master Key, if needed.
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<Strong_Password_#2>';
GO
-- Make a certificate on HOST_B server instance.
CREATE CERTIFICATE HOST_B_cert
WITH SUBJECT = 'HOST_B certificate for database mirroring',
EXPIRY_DATE = '11/30/2013';
GO
--Create a mirroring endpoint for the server instance on 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
--Backup HOST_B certificate.
BACKUP CERTIFICATE HOST_B_cert TO FILE = 'C:\HOST_B_cert.cer';
GO
--Using any secure copy method, copy C:\HOST_B_cert.cer to HOST_A.
Copiez le certificat sur l'autre système en utilisant la méthode sécurisée de votre choix. Veillez particulièrement à sécuriser tous vos certificats.
Important
Une fois que vous avez défini les connexions sortantes, vous devez configurer les connexions entrantes sur chacune des instances du serveur pour l'instance ou les instances de l'autre serveur. 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).
Pour plus d’informations sur la création d’une base de données miroir, et obtenir un exemple Transact-SQL, consultez Préparer une base de données miroir pour la mise en miroir (SQL Server).
Pour obtenir un exemple Transact-SQL d’établissement d’une session en mode hautes performances, consultez Exemple : configuration de la mise en miroir de bases de données à l’aide de certificats (Transact-SQL).
Sécurité du .NET Framework
À 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.
Voir aussi
Choisir un algorithme de chiffrement
Préparer une base de données miroir pour la mise en miroir (SQL Server)
ALTER ENDPOINT (Transact-SQL)
Exemple : Configuration de la mise en miroir de bases de données à l’aide de certificats (Transact-SQL)
Point de terminaison de mise en miroir de bases de données (SQL Server)
Résoudre les problèmes de configuration de mise en miroir de bases de données (SQL Server)
Configurer une base de données miroir chiffrée