Freigeben über


Zulassen, dass ein Datenbankspiegelungsendpunkt Zertifikate für eingehende Verbindungen verwendet (Transact-SQL)

In diesem Thema werden die Schritte zum Konfigurieren von Serverinstanzen beschrieben, um Zertifikate zur Authentifizierung eingehender Verbindungen für die Datenbankspiegelung zu verwenden. Bevor Sie eingehende Verbindungen einrichten können, müssen Sie ausgehende Verbindungen für jede Serverinstanz konfigurieren. Weitere Informationen finden Sie unter Zulassen der Verwendung von Zertifikaten für ausgehende Verbindungen durch einen Endpunkt für die Datenbankspiegelung (Transact-SQL).

Der Prozess der Konfiguration eingehender Verbindungen umfasst die folgenden allgemeinen Schritte:

  1. Erstellen Sie eine Anmeldung für ein anderes System.

  2. Erstellen Sie einen Benutzer für diese Anmeldung.

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

  4. Ordnen Sie das Zertifikat dem in Schritt 2 erstellten Benutzer zu.

  5. Erteilen Sie die CONNECT-Berechtigung für das Login zu diesem Spiegelungsendpunkt.

Wenn es einen Zeugen gibt, müssen Sie auch eingehende Verbindungen dafür einrichten. Dies erfordert das Einrichten von Anmeldeinformationen, Benutzern und Zertifikaten für den Zeugen für beide Partner und umgekehrt.

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.

So konfigurieren Sie Serverinstanzen für eingehende Spiegelungsverbindungen (auf HOST_A)

  1. Erstellen Sie eine Anmeldung für das andere System.

    Im folgenden Beispiel wird eine Anmeldung für das System HOST_B in der Masterdatenbank der Serverinstanz auf HOST_A erstellt. in diesem Beispiel wird die Anmeldung benannt HOST_B_login. Ersetzen Sie ein eigenes Kennwort für das Beispielkennwort.

    USE master;  
    CREATE LOGIN HOST_B_login   
       WITH PASSWORD = '1Sample_Strong_Password!@#';  
    GO  
    

    Weitere Informationen finden Sie unter CREATE LOGIN (Transact-SQL).

    Um die Anmeldungen in dieser 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 diese Anmeldung.

    Im folgenden Beispiel wird für die im vorherigen Schritt erstellte Anmeldung ein Benutzer HOST_B_usererstellt.

    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 in dieser 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 bei der Konfiguration ausgehender Verbindungen noch nicht geschehen ist, rufen Sie eine Kopie des Zertifikats für den Spiegelungsendpunkt der Remoteserverinstanz ab. Sichern Sie dazu das Zertifikat auf dieser Serverinstanz, wie unter Allow a Database Mirroring Endpoint to Use Certificates for Outbound Connections (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).

  4. Ordnen Sie das Zertifikat dem in Schritt 2 erstellten Benutzer zu.

    Im folgenden Beispiel wird das Zertifikat HOST_B dem Benutzer HOST_A zugeordnet.

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

    Verwenden Sie die folgende Transact-SQL-Anweisung, um die Zertifikate in dieser Serverinstanz anzuzeigen:

    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. die Berechtigung für HOST_A für die Remoteserverinstanz auf HOST_B zu erteilen, um eine Verbindung mit der lokalen Anmeldung herzustellen HOST_B_login, 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).

Dadurch wird die Einrichtung der Zertifikatauthentifizierung für HOST_B zum Anmelden bei HOST_A abgeschlossen.

Sie müssen nun die entsprechenden eingehenden Schritte, die für HOST_A notwendig sind, auf HOST_B ausführen. Diese Schritte werden im eingehenden Teil des Beispiels im Abschnitt "Beispiel" unten veranschaulicht.

Beispiel

Im folgenden Beispiel wird das Konfigurieren von HOST_B für eingehende Verbindungen veranschaulicht.

Hinweis

In diesem Beispiel wird eine Zertifikatdatei verwendet, die das HOST_A Zertifikat enthält, das von einem Codeausschnitt in Allow a Database Mirroring Endpoint to Use Certificates for Outbound Connections (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 beabsichtigen, im Hochsicherheitsmodus mit automatischem Failover zu arbeiten, müssen Sie die gleichen Einrichtungsschritte wiederholen, um den Zeugenserver für ausgehende und eingehende Verbindungen zu konfigurieren.

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

Verwenden Sie zum Kopieren eines Zertifikats zu einem anderen System eine sichere Kopiermethode. Seien Sie äußerst vorsichtig, um Ihre Zertifikate zu schützen.

Siehe auch

Transportsicherheit für Datenbankspiegelung und AlwaysOn-Verfügbarkeitsgruppen (SQL Server)
GRANT (Endpunktberechtigungen) (Transact-SQL)
Einrichten einer verschlüsselten Spiegeldatenbank
Der Datenbankspiegelungs-Endpunkt (SQL Server)
Problembehandlung der Konfiguration für Datenbankspiegelung (SQL Server)