Vorgehensweise: Ermöglichen des Verwendens von Zertifikaten für eingehende Verbindungen für die Datenbankspiegelung (Transact-SQL)

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 Vorgehensweise: Ermöglichen des Verwendens von Zertifikaten für ausgehende Verbindungen für die Datenbankspiegelung (Transact-SQL).

Der Vorgang zum Konfigurieren der eingehenden Verbindungen umfasst die folgenden allgemeinen Schritte:

  1. Erstellen eines Anmeldenamens für das andere System.

  2. Erstellen eines Benutzers für den Anmeldenamen.

  3. Abrufen des Zertifikats für den Spiegelungsendpunkt der anderen Serverinstanz.

  4. Zuordnen des Zertifikats zu dem in Schritt 2 erstellten Benutzer.

  5. 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)

  1. Erstellen Sie einen Anmeldenamen 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).

  2. 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).

  3. Rufen Sie das Zertifikat für den Spiegelungsendpunkt der anderen Serverinstanz ab.

    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 Vorgehensweise: Ermöglichen des Verwendens von Zertifikaten für ausgehende Verbindungen für die Datenbankspiegelung (Transact-SQL) beschrieben. Verwenden Sie zum Kopieren eines Zertifikats auf ein anderes System eine sichere Kopiermethode. Lassen Sie große Vorsicht walten, damit die Sicherheit aller Zertifikate gewahrt bleibt.

    Weitere Informationen finden Sie unter BACKUP CERTIFICATE (Transact-SQL).

  4. 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).

  5. Erteilen Sie die CONNECT-Berechtigung für den Anmeldenamen für den Remotespiegelungsendpunkt.

    Um z. B. auf HOST_A die Berechtigung für die Remoteserverinstanz auf HOST_B zum Herstellen der Verbindung mit ihrem lokalen Anmeldenamen zu erteilen – d. h., Verbindungen mit HOST_B_login zu ermöglichen –, 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 Sie die entsprechenden Schritte für eingehende Verbindungen für HOST_A auf HOST_B ausführen. Diese Schritte werden im Abschnitt zu eingehenden Verbindungen im Beispiel unten erläutert.

Beispiel

Im folgenden Beispiel wird das Konfigurieren von HOST_B für eingehende Verbindungen erläutert.

HinweisHinweis

In diesem Beispiel wird eine Zertifikatsdatei mit dem Zertifikat von HOST_A verwendet, das durch einen Codeausschnitt in Vorgehensweise: Ermöglichen des Verwendens von Zertifikaten für ausgehende Verbindungen für die Datenbankspiegelung (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.)
--Asscociate 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.

Informationen zum Erstellen einer Spiegeldatenbank, einschließlich eines Transact-SQL-Beispiels, finden Sie unter Vorgehensweise: Vorbereiten einer Spiegeldatenbank für die Spiegelung (Transact-SQL).

Ein Transact-SQL-Beispiel zum Einrichten einer Sitzung im Modus für hohe Leistung finden Sie unter Beispiel: Einrichten der Datenbankspiegelung mithilfe von Zertifikaten (Transact-SQL).

Sicherheit

Verwenden Sie zum Kopieren eines Zertifikats auf ein anderes System eine sichere Kopiermethode. Lassen Sie große Vorsicht walten, damit die Sicherheit aller Zertifikate gewahrt bleibt.