Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Thema werden die Schritte zum Konfigurieren von Serverinstanzen beschrieben, um Zertifikate zur Authentifizierung von ausgehenden Verbindungen im Rahmen der Datenbankspiegelung zu verwenden. Die Konfiguration der ausgehenden Verbindung muss erfolgen, bevor Sie eingehende Verbindungen einrichten können.
Hinweis
Alle Spiegelungsverbindungen in einer Serverinstanz verwenden einen einzelnen Datenbankspiegelungsendpunkt, und Sie müssen die Authentifizierungsmethode der Serverinstanz angeben, wenn Sie den Endpunkt erstellen.
Der Prozess der Konfiguration ausgehender Verbindungen umfasst die folgenden allgemeinen Schritte:
Erstellen Sie in der Masterdatenbank einen Datenbankmasterschlüssel.
Erstellen Sie in der Masterdatenbank ein verschlüsseltes Zertifikat auf der Serverinstanz.
Erstellen Sie einen Endpunkt für die Serverinstanz mithilfe ihres Zertifikats.
Sichern Sie das Zertifikat in einer Datei, und kopieren Sie es sicher in das andere System oder die anderen Systeme.
Sie müssen diese Schritte für jeden Partner und den Zeugen ausführen, falls vorhanden.
Im folgenden Verfahren werden diese Schritte ausführlich beschrieben. Für jeden Schritt stellt die Prozedur ein Beispiel für die Konfiguration einer Serverinstanz auf einem System mit dem Namen HOST_A bereit. Im zugehörigen Beispielabschnitt werden die gleichen Schritte für eine andere Serverinstanz auf einem System mit dem Namen HOST_B veranschaulicht.
Prozedur
So konfigurieren Sie Serverinstanzen für ausgehende Spiegelungsverbindungen (bei HOST_A)
Erstellen Sie in der Masterdatenbank den Hauptschlüssel der Datenbank, sofern keine vorhanden ist. Verwenden Sie die sys.symmetric_keys Katalogansicht, um die vorhandenen Schlüssel für eine Datenbank anzuzeigen.
Verwenden Sie zum Erstellen des Datenbankmasterschlüssels den folgenden Transact-SQL Befehl:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<1_Strong_Password!>'; GOVerwenden Sie ein eindeutiges, sicheres Kennwort, und notieren Sie es an einem sicheren Ort.
Weitere Informationen finden Sie unter CREATE MASTER KEY (Transact-SQL) und Erstellen eines Datenbankmasterschlüssels.
Erstellen Sie in der Masterdatenbank ein verschlüsseltes Zertifikat auf der Serverinstanz, das für die ausgehenden Verbindungen für die Datenbankspiegelung verwendet werden soll.
Um z. B. ein Zertifikat für das HOST_A System zu erstellen.
Von Bedeutung
Wenn Sie das Zertifikat für mehr als ein Jahr verwenden möchten, geben Sie das Ablaufdatum in UTC-Zeit mithilfe der Option EXPIRY_DATE in Ihrer CREATE CERTIFICATE-Anweisung an. Außerdem wird empfohlen, sql Server Management Studio zum Erstellen einer richtlinienbasierten Verwaltungsregel zu verwenden, um Sie zu benachrichtigen, wenn Ihre Zertifikate ablaufen. Erstellen Sie diese Regel mithilfe des Dialogfelds "Richtlinienverwaltung neue Bedingung erstellen" im Feld "@ExpirationDate " des Facets "Zertifikat ". Weitere Informationen finden Sie unter Verwalten von Servern mithilfe der richtlinienbasierten Verwaltung und Sicherung von SQL Server.
USE master; CREATE CERTIFICATE HOST_A_cert WITH SUBJECT = 'HOST_A certificate for database mirroring', EXPIRY_DATE = '11/30/2013'; GOWeitere Informationen finden Sie unter CREATE CERTIFICATE (Transact-SQL).
Um die Zertifikate in der Masterdatenbank anzuzeigen, können Sie die folgenden Transact-SQL Anweisungen verwenden:
USE master; SELECT * FROM sys.certificates;Weitere Informationen finden Sie unter sys.certificates (Transact-SQL).
Stellen Sie sicher, dass der Datenbankspiegelungsendpunkt für jede Serverinstanz vorhanden ist.
Wenn für die Serverinstanz bereits ein Datenbankspiegelungsendpunkt vorhanden ist, sollten Sie diesen Endpunkt für alle anderen Sitzungen wiederverwenden, die Sie auf der Serverinstanz einrichten. Um festzustellen, ob ein Datenbankspiegelungsendpunkt auf einer Serverinstanz vorhanden ist und ihre Konfiguration anzuzeigen, verwenden Sie das folgende Skript:
SELECT name, role_desc, state_desc, connection_auth_desc, encryption_algorithm_desc FROM sys.database_mirroring_endpoints;Wenn kein Endpunkt vorhanden ist, erstellen Sie einen Endpunkt, der dieses Zertifikat für ausgehende Verbindungen verwendet und die die Anmeldeinformationen des Zertifikats für die Überprüfung auf dem anderen System verwendet. Dies ist ein serverweiter Endpunkt, der von allen Spiegelungssitzungen verwendet wird, an denen die Serverinstanz teilnimmt.
Um beispielsweise einen Spiegelungsendpunkt für die Beispielserverinstanz auf HOST_A zu erstellen.
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 ); GOWeitere Informationen finden Sie unter CREATE ENDPOINT (Transact-SQL).
Sichern Sie das Zertifikat und kopieren Sie es in das andere System oder andere Systeme. Dies ist erforderlich, um eingehende Verbindungen im anderen System zu konfigurieren.
BACKUP CERTIFICATE HOST_A_cert TO FILE = 'C:\HOST_A_cert.cer'; GOWeitere Informationen finden Sie unter BACKUP CERTIFICATE (Transact-SQL).
Kopieren Sie dieses Zertifikat mit einer beliebigen sicheren Methode, die Sie auswählen. Seien Sie äußerst vorsichtig, um Ihre Zertifikate zu schützen.
Der Beispielcode in den vorherigen Schritten konfiguriert ausgehende Verbindungen auf HOST_A.
Sie müssen jetzt die entsprechenden ausgehenden Schritte für HOST_B ausführen. Diese Schritte werden im folgenden Beispielabschnitt veranschaulicht.
Beispiel
Im folgenden Beispiel wird das Konfigurieren von HOST_B für ausgehende Verbindungen veranschaulicht.
USE master;
--Create the database Master Key, if needed.
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<Strong_Password_#2>';
GO
-- Make a certifcate 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.
Kopieren Sie das Zertifikat mithilfe einer von Ihnen ausgewählten sicheren Methode in das andere System. Seien Sie äußerst vorsichtig, um Ihre Zertifikate zu schützen.
Von Bedeutung
Nachdem Sie ausgehende Verbindungen eingerichtet haben, müssen Sie eingehende Verbindungen für jede Serverinstanz für die andere Serverinstanz oder -instanzen konfigurieren. Weitere Informationen finden Sie unter Einem Datenbank-Spiegelungsendpunkt erlauben, Zertifikate für eingehende Verbindungen zu verwenden (Transact-SQL).
Informationen zum Erstellen einer Spiegeldatenbank, einschließlich eines Transact-SQL Beispiels, finden Sie unter "Vorbereiten einer Spiegeldatenbank für Spiegelung (SQL Server)".
Ein Transact-SQL Beispiel für die Einrichtung einer Sitzung mit hohem Leistungsmodus finden Sie unter Beispiel: Einrichten der Datenbankspiegelung mithilfe von Zertifikaten (Transact-SQL).
.NET Framework-Sicherheit
Sofern Sie nicht garantieren können, dass Ihr Netzwerk sicher ist, wird das Verschlüsseln bei Verbindungen zur Datenbankspiegelung empfohlen.
Verwenden Sie zum Kopieren eines Zertifikats zu einem anderen System eine sichere Kopiermethode.
Siehe auch
Auswählen eines Verschlüsselungsalgorithmus
Vorbereiten einer Spiegeldatenbank für die Spiegelung (SQL Server)
ALTER ENDPOINT (Transact-SQL)
Beispiel: Einrichten der Datenbankspiegelung mithilfe von Zertifikaten (Transact-SQL)
Der Datenbankspiegelungs-Endpunkt (SQL Server)
Problembehandlung der Konfiguration für Datenbankspiegelung (SQL Server)
Einrichten einer verschlüsselten Spiegeldatenbank