Datenbankspiegelung: Verwenden von Zertifikaten für eingehende VerbindungenDatabase Mirroring - Use Certificates for Inbound Connections

Anwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions) Anwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions)

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.This topic describes the steps for configuring server instances to use certificates to authenticate inbound connections for database mirroring. Bevor Sie eingehende Verbindungen einrichten können, müssen Sie ausgehende Verbindungen für jede Serverinstanz konfigurieren.Before you can set up inbound connections, you must configure outbound connections on each server instance. Weitere Informationen finden Sie unter Ermöglichen des Verwendens von Zertifikaten für ausgehende Verbindungen für einen Datenbankspiegelungs-Endpunkt (Transact-SQL).For more information, see Allow a Database Mirroring Endpoint to Use Certificates for Outbound Connections (Transact-SQL).

Der Vorgang zum Konfigurieren der eingehenden Verbindungen umfasst die folgenden allgemeinen Schritte:The process of configuring inbound connections, involves the following general steps:

  1. Erstellen eines Anmeldenamens für das andere System.Create a login for other system.

  2. Erstellen Sie einen Benutzer für den Anmeldenamen.Create a user for that login.

  3. Abrufen des Zertifikats für den Spiegelungsendpunkt der anderen ServerinstanzObtain the certificate for the mirroring endpoint of the other server instance.

  4. Ordnen Sie das Zertifikat dem in Schritt 2 erstellten Benutzer zu.Associate the certificate with the user created in step 2.

  5. Erteilen der CONNECT-Berechtigung für den Anmeldenamen für den entsprechenden SpiegelungsendpunktGrant CONNECT permission on the login for that mirroring endpoint.

Falls ein Zeuge vorhanden ist, müssen Sie auch eingehende Verbindungen für diesen einrichten.If there is a witness, you must also set up inbound connections for it. Hierfür ist es erforderlich, Anmeldenamen, Benutzer und Zertifikate für den Zeugen auf beiden Partnern (und umgekehrt) einzurichten.This requires setting up logins, users, and certificates for the witness on both of the partners, and vice versa.

Die folgende Prozedur beschreibt diese Schritte detailliert.The following procedure describes these steps in detail. Für jeden Schritt enthält die Prozedur ein Beispiel für das Konfigurieren einer Serverinstanz auf einem System namens HOST_A.For each step, the procedure provides an example for configuring a server instance on a system named HOST_A. Im zugehörigen Beispielabschnitt werden dieselben Schritte für eine andere Serverinstanz auf einem System namens HOST_B beschrieben.The accompanying Example section demonstrates the same steps for another server instance on a system named HOST_B.

So konfigurieren Sie Serverinstanzen für eingehende Spiegelungsverbindungen (auf HOST_A)To configure server instances for inbound mirroring connections (on HOST_A)

  1. Erstellen eines Anmeldenamens für das andere SystemCreate a login for the other 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.The following example creates a login for the system, HOST_B, in the master database of the server instance on HOST_A; in this example, the login is named HOST_B_login. Ersetzen Sie das Beispielkennwort durch ein Kennwort Ihrer Wahl.Substitute a password of your own for the sample password.

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

    Weitere Informationen finden Sie unter CREATE LOGIN (Transact-SQL).For more information, see CREATE LOGIN (Transact-SQL).

    Um die Anmeldenamen für diese Serverinstanz anzuzeigen, können Sie die folgende Transact-SQLTransact-SQL-Anweisung verwenden:To view the logins on this server instance, you can use the following Transact-SQLTransact-SQL statement:

    SELECT * FROM sys.server_principals  
    

    Weitere Informationen finden Sie unter sys.server_principals (Transact-SQL).For more information, see sys.server_principals (Transact-SQL).

  2. Erstellen Sie einen Benutzer für den Anmeldenamen.Create a user for that login.

    Das folgende Beispiel erstellt einen Benutzer namens HOST_B_user für den im vorherigen Schritt erstellten Anmeldenamen.The following example creates a user, HOST_B_user, for the login created in the preceding step.

    USE master;  
    CREATE USER HOST_B_user FOR LOGIN HOST_B_login;  
    GO  
    

    Weitere Informationen finden Sie unter CREATE USER (Transact-SQL).For more information, see CREATE USER (Transact-SQL).

    Um die Benutzer für diese Serverinstanz anzuzeigen, können Sie die folgende Transact-SQLTransact-SQL-Anweisung verwenden:To view the users on this server instance, you can use the following Transact-SQLTransact-SQL statement:

    SELECT * FROM sys.sysusers;  
    

    Weitere Informationen finden Sie unter sys.sysusers (Transact-SQL).For more information, see sys.sysusers (Transact-SQL).

  3. Abrufen des Zertifikats für den Spiegelungsendpunkt der anderen ServerinstanzObtain the certificate for the mirroring endpoint of the other server instance.

    Wenn dies noch nicht beim Konfigurieren ausgehender Verbindungen geschehen ist, rufen Sie eine Kopie des Zertifikats für den Spiegelungsendpunkt der Remoteserverinstanz ab.If you have not already done so when configuring outbound connections, obtain a copy of the certificate for the mirroring endpoint of the remote server instance. 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.To do this, back up the certificate on that server instance as described in Allow a Database Mirroring Endpoint to Use Certificates for Outbound Connections (Transact-SQL). Verwenden Sie zum Kopieren eines Zertifikats zu einem anderen System eine sichere Kopiermethode.When copying a certificate to another system, use a secure copy method. Seien Sie äußerst vorsichtig, um Ihre Zertifikate zu schützen.Be extremely careful to keep all of your certificates secure.

    Weitere Informationen finden Sie unter BACKUP CERTIFICATE (Transact-SQL).For more information, see BACKUP CERTIFICATE (Transact-SQL).

  4. Ordnen Sie das Zertifikat dem in Schritt 2 erstellten Benutzer zu.Associate the certificate with the user created in step 2.

    Das folgende Beispiel ordnet das Zertifikat von HOST_B seinem Benutzer auf HOST_A zu.The following example, associates the certificate of HOST_B with its user on HOST_A.

    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).For more information, see CREATE CERTIFICATE (Transact-SQL).

    Um die Zertifikate für diese Serverinstanz anzuzeigen, verwenden Sie die folgende Transact-SQLTransact-SQL-Anweisung:To view the certificates on this server instance, use the following Transact-SQLTransact-SQL statement:

    SELECT * FROM sys.certificates  
    

    Weitere Informationen finden Sie unter sys.certificates (Transact-SQL).For more information, see sys.certificates (Transact-SQL).

  5. Erteilen Sie die CONNECT-Berechtigung für den Anmeldenamen für den Remotespiegelungsendpunkt.Grant CONNECT permission on the login for the remote mirroring endpoint.

    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-SQLTransact-SQL-Anweisungen:For example, to grant permission on HOST_A to the remote server instance on HOST_B to connect to its local login-that is, to connect to HOST_B_login-use the following Transact-SQLTransact-SQL statements:

    USE master;  
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_B_login];  
    GO  
    

    Weitere Informationen finden Sie unter GRANT (Endpunktberechtigungen) (Transact-SQL).For more information, see GRANT Endpoint Permissions (Transact-SQL).

Hiermit ist das Einrichten der Zertifikatsauthentifizierung für HOST_B zur Anmeldung bei HOST_A abgeschlossen.This completes setting up certificate authentication for HOST_B to log in to HOST_A.

Jetzt müssen die entsprechenden Schritte für eingehende Verbindungen für HOST_A auf HOST_B ausgeführt werden.You now need to perform the equivalent inbound steps for HOST_A on HOST_B. Diese Schritte werden im Abschnitt zu eingehenden Verbindungen des folgenden Beispiels erläutert.These steps are illustrated in the inbound portion of the example in the Example section, below.

BeispielExample

Im folgenden Beispiel wird das Konfigurieren von HOST_B für eingehende Verbindungen erläutert.The following example demonstrates configuring HOST_B for inbound connections.

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.This example uses a certificate file containing the HOST_A certificate that is created by a code snippet in Allow a Database Mirroring Endpoint to Use Certificates for Outbound Connections (Transact-SQL).

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.If you intend to run in high-safety mode with automatic failover, you must repeat the same set up steps to configure the witness for outbound and inbound connections.

Weitere Informationen zum Erstellen einer Spiegeldatenbank, einschließlich eines Transact-SQL-Beispiels, finden Sie unter Vorbereiten einer Spiegeldatenbank auf die Spiegelung (SQL Server).For information on creating a mirror database, including a Transact-SQL example, see Prepare a Mirror Database for Mirroring (SQL Server).

Ein Transact-SQL-Beispiel zum Einrichten einer Sitzung im Hochleistungsmodus finden Sie unter Beispiel: Einrichten der Datenbankspiegelung mithilfe von Zertifikaten (Transact-SQL).For a Transact-SQL example of establishing a high-performance mode session, see Example: Setting Up Database Mirroring Using Certificates (Transact-SQL).

.NET Framework-Sicherheit.NET Framework Security

Verwenden Sie zum Kopieren eines Zertifikats zu einem anderen System eine sichere Kopiermethode.When copying a certificate to another system, use a secure copy method. Seien Sie äußerst vorsichtig, um Ihre Zertifikate zu schützen.Be extremely careful to keep all of your certificates secure.

Weitere InformationenSee Also

Transportsicherheit für Datenbankspiegelung und Always On-Verfügbarkeitsgruppen (SQL Server) Transport Security for Database Mirroring and Always On Availability Groups (SQL Server)
GRANT (Endpunktberechtigungen) (Transact-SQL) GRANT Endpoint Permissions (Transact-SQL)
Einrichten einer verschlüsselten Spiegeldatenbank Set Up an Encrypted Mirror Database
Der Datenbankspiegelungs-Endpunkt (SQL Server) The Database Mirroring Endpoint (SQL Server)
Problembehandlung für die Datenbankspiegelungskonfiguration (SQL Server)Troubleshoot Database Mirroring Configuration (SQL Server)