Beispiel: Einrichten der Datenbankspiegelung mithilfe von Zertifikaten (Transact-SQL)
Gilt für: SQL Server
In diesem Beispiel werden sämtliche Schritte erläutert, die für das Erstellen einer Datenbank-Spiegelungssitzung mithilfe der zertifikatbasierten Authentifizierung erforderlich sind. In den Beispielen in diesem Thema wird Transact-SQL verwendet. 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. Seien Sie äußerst vorsichtig, um Ihre Zertifikate zu schützen.
Beispiel
Das folgende Beispiel zeigt, welche Aktionen für einen der Partner ausgeführt werden müssen, der auf HOST_A gespeichert ist. In diesem Beispiel sind die beiden Partner die Standardserverinstanzen auf drei Computersystemen. Die beiden Serverinstanzen werden in nicht vertrauenswürdigen Windows-Domänen ausgeführt, daher ist zertifikatbasierte Authentifizierung erforderlich.
HOST_A übernimmt die anfängliche Prinzipalrolle, während die Spiegelrolle von HOST_B übernommen wird.
Das Einrichten der Datenbankspiegelung mithilfe von Zertifikaten umfasst vier allgemeine Phasen, von den drei Phasen, nämlich 1, 2 und 4, in diesem Beispiel demonstriert werden. Diese Phasen sind im Folgenden aufgeführt:
Konfigurieren ausgehender Verbindungen
Im Beispiel werden die Schritte für folgende Aufgaben veranschaulicht.
Konfigurieren von Host_A für ausgehende Verbindungen
Konfigurieren von Host_B für ausgehende Verbindungen
Informationen zu dieser Phase der Einrichtung der Datenbankspiegelung finden Sie unter Zulassen der Verwendung von Zertifikaten für ausgehende Verbindungen durch einen Endpunkt für die Datenbankspiegelung (Transact-SQL).
Konfigurieren eingehender Verbindungen
Im Beispiel werden die Schritte für folgende Aufgaben veranschaulicht.
Konfigurieren von Host_A für eingehende Verbindungen
Konfigurieren von Host_B für eingehende Verbindungen
Informationen zu dieser Phase der Einrichtung der Datenbankspiegelung finden Sie unter Zulassen der Verwendung von Zertifikaten für eingehende Verbindungen durch einen Endpunkt für die Datenbankspiegelung (Transact-SQL).
Erstellen der Spiegeldatenbank
Weitere Informationen zum Erstellen einer Spiegeldatenbank finden Sie unter Vorbereiten einer Spiegeldatenbank für die Spiegelung (SQL Server).
Konfigurieren ausgehender Verbindungen
So konfigurieren Sie Host_A für ausgehende Verbindungen
Erstellen Sie in der master-Datenbank den Datenbankhauptschlüssel, sofern erforderlich.
USE master; CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<1_Strong_Password!>'; GO
Erstellen Sie ein Zertifikat für diese Serverinstanz.
USE master; CREATE CERTIFICATE HOST_A_cert WITH SUBJECT = 'HOST_A certificate'; GO
Erstellen Sie einen Spiegelungsendpunkt für die Serverinstanz, die das Zertifikat verwendet.
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 ); GO
Sichern Sie das Zertifikat von HOST_A, und kopieren Sie es auf das andere System, HOST_B.
BACKUP CERTIFICATE HOST_A_cert TO FILE = 'C:\HOST_A_cert.cer'; GO
Kopieren Sie C:\HOST_A_cert.cer mithilfe einer sicheren Kopiermethode auf HOST_B.
So konfigurieren Sie Host_B für ausgehende Verbindungen
Erstellen Sie in der master-Datenbank den Datenbankhauptschlüssel, sofern erforderlich.
USE master; CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<Strong_Password_#2>'; GO
Erstellen Sie ein Zertifikat auf der Serverinstanz HOST_B.
CREATE CERTIFICATE HOST_B_cert WITH SUBJECT = 'HOST_B certificate for database mirroring'; GO
Erstellen Sie einen Spiegelungsendpunkt für die Serverinstanz auf 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
Sichern Sie das Zertifikat von HOST_B.
BACKUP CERTIFICATE HOST_B_cert TO FILE = 'C:\HOST_B_cert.cer'; GO
Kopieren Sie C:\HOST_B_cert.cer mithilfe einer sicheren Kopiermethode auf HOST_A.
Weitere Informationen finden Sie unter Zulassen der Verwendung von Zertifikaten für ausgehende Verbindungen durch einen Endpunkt für die Datenbankspiegelung (Transact-SQL).
Konfigurieren eingehender Verbindungen
So konfigurieren Sie Host_A für eingehende Verbindungen
Erstellen Sie auf HOST_A einen Anmeldenamen für HOST_B.
USE master; CREATE LOGIN HOST_B_login WITH PASSWORD = '1Sample_Strong_Password!@#'; GO
-- Erstellen Sie einen Benutzer für diesen Anmeldenamen.
CREATE USER HOST_B_user FOR LOGIN HOST_B_login; GO
-- Ordnen Sie das Zertifikat dem Benutzer zu.
CREATE CERTIFICATE HOST_B_cert AUTHORIZATION HOST_B_user FROM FILE = 'C:\HOST_B_cert.cer' GO
Erteilen Sie die CONNECT-Berechtigung für den Anmeldenamen für den Remotespiegelungsendpunkt.
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_B_login]; GO
So konfigurieren Sie Host_B für eingehende Verbindungen
Erstellen Sie auf HOST_B einen Anmeldenamen für HOST_B.
USE master; CREATE LOGIN HOST_A_login WITH PASSWORD = '=Sample#2_Strong_Password2'; GO
Erstellen Sie einen Benutzer für den Anmeldenamen.
CREATE USER HOST_A_user FOR LOGIN HOST_A_login; GO
Ordnen Sie das Zertifikat dem Benutzer zu.
CREATE CERTIFICATE HOST_A_cert AUTHORIZATION HOST_A_user FROM FILE = 'C:\HOST_A_cert.cer' GO
Erteilen Sie die CONNECT-Berechtigung für den Anmeldenamen für den Remotespiegelungsendpunkt.
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_A_login]; GO
Wichtig
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. Für das Setup der eingehenden Verbindungen bei Verwendung eines Zeugen ist es erforderlich, Anmeldungen und Benutzer für den Zeugen auf beiden Partnern und für beide Partner auf dem Zeugen einzurichten.
Weitere Informationen finden Sie unter Zulassen der Verwendung von Zertifikaten für eingehende Verbindungen durch einen Endpunkt für die Datenbankspiegelung (Transact-SQL).
Erstellen der Spiegeldatenbank
Weitere Informationen zum Erstellen einer Spiegeldatenbank finden Sie unter Vorbereiten einer Spiegeldatenbank für die Spiegelung (SQL Server).
Konfigurieren der Spiegelungspartner
Legen Sie für die Spiegelserverinstanz auf HOST_B die Serverinstanz auf HOST_A als Partner fest (hierdurch wird sie zur ersten Prinzipalserverinstanz): Ersetzen Sie
TCP://HOST_A.Mydomain.Corp.Adventure-Works``.com:7024
durch eine gültige Netzwerkadresse. Weitere Informationen finden Sie unter Angeben einer Servernetzwerkadresse (Datenbankspiegelung).--At HOST_B, set server instance on HOST_A as partner (principal server): ALTER DATABASE AdventureWorks SET PARTNER = 'TCP://HOST_A.Mydomain.Corp.Adventure-Works.com:7024'; GO
Legen Sie für die Prinzipalserverinstanz auf HOST_A die Serverinstanz auf HOST_B als Partner fest (hierdurch wird sie zur ersten Spiegelserverinstanz): Ersetzen Sie
TCP://HOST_B.Mydomain.Corp.Adventure-Works.com:7024
durch eine gültige Netzwerkadresse.--At HOST_A, set server instance on HOST_B as partner (mirror server). ALTER DATABASE AdventureWorks SET PARTNER = 'TCP://HOST_B.Mydomain.Corp.Adventure-Works.com:7024'; GO
Dieses Beispiel geht davon aus, dass die Sitzung im Modus für hohe Verfügbarkeit ausgeführt wird. Wenn Sie diese Sitzung für den Modus für hohe Verfügbarkeit konfigurieren möchten, legen Sie die Transaktionssicherheit für die Prinzipalserverinstanz (auf HOST_A) auf OFF fest.
--Change to high-performance mode by turning off transaction safety. ALTER DATABASE AdventureWorks SET PARTNER SAFETY OFF GO
Hinweis
Wenn die Ausführung im Modus für hohe Sicherheit mit automatischem Failover geplant ist, sollte die Transaktionssicherheit auf FULL (Standardeinstellung) festgelegt bleiben und der Zeuge so schnell wie möglich nach Ausführung der zweiten SET PARTNER 'partner_server' -Anweisung hinzugefügt werden. Beachten Sie, dass der Zeuge zuerst für aus- und eingehende Verbindungen konfiguriert werden muss.
Related Tasks
Vorbereiten einer Spiegeldatenbank auf die Spiegelung (SQL Server)
Verwaltung von Anmeldenamen und Aufträgen nach einem Rollenwechsel (SQL Server)
Problembehandlung für die Datenbankspiegelungskonfiguration (SQL Server)
Weitere Informationen
Transportsicherheit für Datenbankspiegelung und Always On-Verfügbarkeitsgruppen (SQL Server)
Angeben einer Servernetzwerkadresse (Datenbankspiegelung)
Der Datenbankspiegelungs-Endpunkt (SQL Server)
Verwenden von Zertifikaten für einen Datenbankspiegelungs-Endpunkt (Transact-SQL)
ALTER DATABASE (Transact-SQL)
Sicherheitscenter für SQL Server-Datenbank-Engine und Azure SQL-Datenbank