Datenbankspiegelung: Verwenden von Zertifikaten für eingehende Verbindungen
Gilt für: SQL Server
In diesem Thema werden die Schritte beschrieben, um Serverinstanzen so zu konfigurieren, dass bei der Datenbankspiegelung Zertifikate zur Authentifizierung von eingehenden Verbindungen verwendet werden können. Bevor Sie eingehende Verbindungen einrichten können, müssen Sie ausgehende Verbindungen für jede Serverinstanz konfigurieren. Weitere Informationen finden Sie unter Ermöglichen der Verwendung von Zertifikaten für ausgehende Verbindungen für einen Datenbankspiegelungs-Endpunkt (Transact-SQL).
Der Vorgang zum Konfigurieren der eingehenden Verbindungen umfasst die folgenden allgemeinen Schritte:
Erstellen eines Anmeldenamens für das andere System.
Erstellen Sie einen Benutzer für den Anmeldenamen.
Abrufen des Zertifikats für den Spiegelungsendpunkt der anderen Serverinstanz
Ordnen Sie das Zertifikat dem in Schritt 2 erstellten Benutzer zu.
Erteilen der CONNECT-Berechtigung für den Anmeldenamen für den entsprechenden Spiegelungsendpunkt
Falls ein Zeuge vorhanden ist, müssen Sie auch eingehende Verbindungen für diesen einrichten. Hierfür ist es erforderlich, Anmeldenamen, Benutzer und Zertifikate für den Zeugen auf beiden Partnern (und umgekehrt) einzurichten.
Die folgende Prozedur beschreibt diese Schritte detailliert. Für jeden Schritt enthält die Prozedur ein Beispiel für das Konfigurieren einer Serverinstanz auf einem System namens HOST_A. Im zugehörigen Beispielabschnitt werden dieselben Schritte für eine andere Serverinstanz auf einem System namens HOST_B beschrieben.
So konfigurieren Sie Serverinstanzen für eingehende Spiegelungsverbindungen (auf HOST_A)
Erstellen eines Anmeldenamens für das andere System
Das folgende Beispiel erstellt einen Anmeldenamen für das System HOST_B in der master -Datenbank der Serverinstanz auf HOST_A. In diesem Beispiel heißt der Anmeldename
HOST_B_login
. Ersetzen Sie das Beispielkennwort durch ein Kennwort Ihrer Wahl.USE master; CREATE LOGIN HOST_B_login WITH PASSWORD = '1Sample_Strong_Password!@#'; GO
Weitere Informationen finden Sie unter CREATE LOGIN (Transact-SQL).
Um die Anmeldenamen für diese Serverinstanz anzuzeigen, können Sie die folgende Transact-SQL-Anweisung verwenden:
SELECT * FROM sys.server_principals
Weitere Informationen finden Sie unter sys.server_principals (Transact-SQL).
Erstellen Sie einen Benutzer für den Anmeldenamen.
Das folgende Beispiel erstellt einen Benutzer namens
HOST_B_user
für den im vorherigen Schritt erstellten Anmeldenamen.USE master; CREATE USER HOST_B_user FOR LOGIN HOST_B_login; GO
Weitere Informationen finden Sie unter CREATE USER (Transact-SQL).
Um die Benutzer für diese Serverinstanz anzuzeigen, können Sie die folgende Transact-SQL-Anweisung verwenden:
SELECT * FROM sys.sysusers;
Weitere Informationen finden Sie unter sys.sysusers (Transact-SQL).
Abrufen des Zertifikats für den Spiegelungsendpunkt der anderen Serverinstanz
Wenn dies noch nicht beim Konfigurieren ausgehender Verbindungen geschehen ist, rufen Sie eine Kopie des Zertifikats für den Spiegelungsendpunkt der Remoteserverinstanz ab. Sichern Sie zu diesem Zweck das Zertifikat für diese Serverinstanz wie unter Ermöglichen des Verwendens von Zertifikaten für ausgehende Verbindungen für einen Datenbankspiegelungs-Endpunkt (Transact-SQL) beschrieben. Verwenden Sie zum Kopieren eines Zertifikats zu einem anderen System eine sichere Kopiermethode. Seien Sie äußerst vorsichtig, um Ihre Zertifikate zu schützen.
Weitere Informationen finden Sie unter BACKUP CERTIFICATE (Transact-SQL).
Ordnen Sie das Zertifikat dem in Schritt 2 erstellten Benutzer zu.
Das folgende Beispiel ordnet das Zertifikat von HOST_B seinem Benutzer auf HOST_A zu.
USE master; CREATE CERTIFICATE HOST_B_cert AUTHORIZATION HOST_B_user FROM FILE = 'C:\HOST_B_cert.cer' GO
Weitere Informationen finden Sie unter CREATE CERTIFICATE (Transact-SQL).
Um die Zertifikate für diese Serverinstanz anzuzeigen, verwenden Sie die folgende Transact-SQL-Anweisung:
SELECT * FROM sys.certificates
Weitere Informationen finden Sie unter sys.certificates (Transact-SQL).
Erteilen Sie die CONNECT-Berechtigung für den Anmeldenamen für den Remotespiegelungsendpunkt.
Um beispielsweise auf HOST_A die Berechtigung für die Remoteserverinstanz auf HOST_B zum Herstellen der Verbindung mit ihrem lokalen Anmeldenamen zu erteilen, d. h., um eine Verbindung mit
HOST_B_login
herzustellen, verwenden Sie die folgenden Transact-SQL-Anweisungen:USE master; GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_B_login]; GO
Weitere Informationen finden Sie unter GRANT (Endpunktberechtigungen) (Transact-SQL).
Hiermit ist das Einrichten der Zertifikatsauthentifizierung für HOST_B zur Anmeldung bei HOST_A abgeschlossen.
Jetzt müssen die entsprechenden Schritte für eingehende Verbindungen für HOST_A auf HOST_B ausgeführt werden. Diese Schritte werden im Abschnitt zu eingehenden Verbindungen des folgenden Beispiels erläutert.
Beispiel
Im folgenden Beispiel wird das Konfigurieren von HOST_B für eingehende Verbindungen erläutert.
Hinweis
In diesem Beispiel wird eine Zertifikatsdatei mit dem Zertifikat von HOST_A verwendet, das durch einen Codeausschnitt in Ermöglichen des Verwendens von Zertifikaten für ausgehende Verbindungen für einen Datenbankspiegelungs-Endpunkt (Transact-SQL) erstellt wird.
USE master;
--On HOST_B, create a login for HOST_A.
CREATE LOGIN HOST_A_login WITH PASSWORD = 'AStrongPassword!@#';
GO
--Create a user, HOST_A_user, for that login.
CREATE USER HOST_A_user FOR LOGIN HOST_A_login
GO
--Obtain HOST_A certificate. (See the note
-- preceding this example.)
--Associate this certificate with the user, HOST_A_user.
CREATE CERTIFICATE HOST_A_cert
AUTHORIZATION HOST_A_user
FROM FILE = 'C:\HOST_A_cert.cer';
GO
--Grant CONNECT permission for the server instance on HOST_A.
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO HOST_A_login
GO
Wenn Sie die Ausführung im Modus für hohe Sicherheit mit automatischem Failover planen, müssen Sie die gleichen Setupschritte zum Konfigurieren des Zeugen für aus- und eingehende Verbindungen ausführen.
Weitere Informationen zum Erstellen einer Spiegeldatenbank, einschließlich eines Transact-SQL-Beispiels, finden Sie unter Vorbereiten einer Spiegeldatenbank auf die Spiegelung (SQL Server).
Ein Transact-SQL-Beispiel zum Einrichten einer Sitzung im Hochleistungsmodus finden Sie unter Beispiel: Einrichten der Datenbankspiegelung mithilfe von Zertifikaten (Transact-SQL).
.NET Framework-Sicherheit
Verwenden Sie zum Kopieren eines Zertifikats zu einem anderen System eine sichere Kopiermethode. Seien Sie äußerst vorsichtig, um Ihre Zertifikate zu schützen.
Weitere Informationen
Transportsicherheit für Datenbankspiegelung und Always On-Verfügbarkeitsgruppen (SQL Server)
GRANT (Endpunktberechtigungen) (Transact-SQL)
Einrichten einer verschlüsselten Spiegeldatenbank
Der Datenbankspiegelungs-Endpunkt (SQL Server)
Problembehandlung für die Datenbankspiegelungskonfiguration (SQL Server)