Transportsicherheit bei der Datenbankspiegelung

Die Transportsicherheit in SQL Server 2005 und höheren Versionen schließt die Authentifizierung und optional die Verschlüsselung der Nachrichten ein, die zwischen den Datenbanken ausgetauscht werden.

Für die Datenbankspiegelung werden Authentifizierung und Verschlüsselung am Endpunkt konfiguriert. Eine Einführung zu Datenbank-Spiegelungsendpunkten finden Sie unter Datenbank-Spiegelungsendpunkt.

Authentifizierung

Unter Authentifizierung versteht man den Prozess, mit dem überprüft wird, ob es sich bei einem Benutzer wirklich um die Person handelt, die der Benutzer angeblich ist. Verbindungen zwischen Datenbank-Spiegelungsendpunkten erfordern die Authentifizierung. Verbindungsanforderungen von einem Partner oder ggf. einem Zeugen müssen authentifiziert werden.

Der für die Datenbankspiegelung von einer Serverinstanz verwendete Authentifizierungstyp ist eine Eigenschaft des Endpunkts der Datenbankspiegelung. Für die Datenbankspiegelung sind zwei Arten von Transportsicherheit verfügbar: Windows-Authentifizierung oder zertifikatbasierte Authentifizierung.

Die Windows-Authentifizierung unterstützt zwei Authentifizierungsprotokolle: NT LAN Manager (NTLM) und Kerberos. Ein Datenbank-Spiegelungsendpunkt kann so konfiguriert werden, dass er nur eines der Protokolle verwendet oder das verwendete Protokoll jeweils aushandelt. Standardmäßig wird das Protokoll ausgehandelt. Der dazu verwendete Standardwert NEGOTIATE hat zur Folge, dass der Endpunkt anhand des Windows-Verhandlungsprotokolls entweder NTLM oder Kerberos auswählt. Wird an einem Endpunkt eine bestimmte Authentifizierungsmethode (NTLM oder Kerberos) angegeben, so kann dieser Endpunkt ausschließlich diese Methode verwenden. Wenn der gegenüberliegende Endpunkt dann für die Verwendung der jeweils anderen Methode konfiguriert ist, ist der Verbindungsaufbau zwischen den beiden Endpunkten nicht möglich. Weitere Informationen zu diesen Methoden finden Sie unter Endpunktauthentifizierungs-Typen.

HinweisHinweis

Informationen zu diesem Endpunkt finden Sie unter Datenbank-Spiegelungsendpunkt.

Eine Datenbankspiegelungsverbindung verwendet entweder die Windows-Authentifizierung (die Security Support Provider Interface (SSPI)) oder die zertifikatbasierte Authentifizierung.

Windows-Authentifizierung

Bei der Windows-Authentifizierung erfolgt die Anmeldung jeder Serverinstanz bei der anderen Seite mithilfe der Windows-Anmeldeinformationen des Windows-Benutzerkontos, unter dem der Prozess ausgeführt wird. Aus diesem Grund setzt die Windows-Authentifizierung voraus, dass SQL Server-Dienste als Domänenbenutzer in vertrauenswürdigen Domänen oder als Netzwerkdienste ausgeführt werden.

Zum Authentifizieren beider Enden einer Verbindung werden bei der Windows-Authentifizierung die Anmeldeinformationen des Windows-Benutzerkontos verwendet, unter dem die Instanzen von SQL Server ausgeführt werden. Daher muss das Benutzerkonto jeder Serverinstanz über die Berechtigungen verfügen, die zum Anmelden und zum Senden von Nachrichten zu jeder der anderen Serverinstanzen benötigt werden.

Ein Beispiel zum Einrichten einer Datenbankspiegelungssitzung mithilfe der Windows-Authentifizierung finden Sie unter Beispiel: Einrichten der Datenbankspiegelung mithilfe der Windows-Authentifizierung (Transact-SQL).

Zertifikate

Unter bestimmten Umständen – z. B. wenn sich Serverinstanzen nicht in vertrauenswürdigen Domänen befinden oder wenn SQL Server als lokaler Dienst ausgeführt wird – steht die Windows-Authentifizierung nicht zur Verfügung. In solchen Fällen werden zum Authentifizieren der Verbindungsanforderungen anstelle der Benutzeranmeldeinformationen Zertifikate benötigt. Der Spiegelungsendpunkt jeder Serverinstanz muss mit ihrem eigenen lokal erstellten Zertifikat konfiguriert werden.

Die Verschlüsselungsmethode wird beim Erstellen des Zertifikats festgelegt. Weitere Informationen finden Sie unter Vorgehensweise: Ermöglichen des Verwendens von Zertifikaten für ausgehende Verbindungen für die Datenbankspiegelung (Transact-SQL). Gehen Sie bei der Verwaltung der von Ihnen verwendeten Zertifikate mit großer Vorsicht vor.

Eine Serverinstanz verwendet den privaten Schlüssel ihres eigenen Zertifikats, um bei einem Verbindungsaufbau ihre Identität einzurichten. Die Serverinstanz, die die Verbindungsanforderung empfängt, verwendet den öffentlichen Schlüssel des Absenderzertifikats, um die Identität des Absenders zu authentifizieren. Angenommen, es gibt z. B. die beiden Instanzen Server_A und Server_B. Server_A verwendet seinen privaten Schlüssel zum Verschlüsseln des Verbindungsheaders vor dem Senden einer Verbindungsanforderung an Server_B. Server_B verwendet den öffentlichen Schlüssel des Zertifikats von Server_A, um den Verbindungsheader zu entschlüsseln. Wenn der entschlüsselte Header richtig ist, weiß Server_B, dass der Header von Server_A verschlüsselt wurde, und die Verbindung wird authentifiziert. Wenn der entschlüsselte Header nicht richtig ist, erkennt Server_B, dass die Verbindungsanforderung nicht authentisch ist, und verweigert den Verbindungsaufbau.

SicherheitshinweisSicherheitshinweis

Installieren Sie ausschließlich Zertifikate aus vertrauenswürdigen Quellen.

Es gibt keine automatische Methode zum Konfigurieren der Datenbankspiegelungssicherheit mithilfe von Zertifikaten. Es muss Transact-SQL verwendet werden. Ein Beispiel zum Verwenden der zertifikatbasierten Authentifizierung zum Einrichten einer Datenbankspiegelungssitzung finden Sie unter Beispiel: Einrichten der Datenbankspiegelung mithilfe von Zertifikaten (Transact-SQL).

Datenverschlüsselung

Standardmäßig setzt ein Datenbank-Spiegelungsendpunkt die Verschlüsselung der über Spiegelungsverbindungen gesendeten Daten voraus. In diesem Fall kann der Endpunkt nur Verbindungen mit Endpunkten herstellen, die ebenfalls mit Verschlüsselung arbeiten. Sofern Sie nicht garantieren können, dass Ihr Netzwerk sicher ist, wird empfohlen, das Verschlüsseln bei Verbindungen zur Datenbankspiegelung vorauszusetzen. Allerdings können Sie die Verschlüsselung auch deaktivieren oder festlegen, dass die Verschlüsselung zwar unterstützt wird, jedoch nicht erforderlich ist. Bei deaktivierter Verschlüsselung werden die Daten niemals verschlüsselt, und der Endpunkt kann keine Verbindung mit einem Endpunkt herstellen, der die Verschlüsselung erfordert. Wenn die Verschlüsselung unterstützt wird, werden die Daten nur dann verschlüsselt, wenn der gegenüberliegende Endpunkt die Verschlüsselung unterstützt oder erfordert.

HinweisHinweis

Alle durch SQL Server Management Studio erstellten Spiegelungsendpunkte werden entweder mit erforderlicher Verschlüsselung oder mit deaktivierter Verschlüsselung erstellt. Zum Ändern der Verschlüsselungseinstellung zu SUPPORTED verwenden Sie die Transact-SQL-Anweisung ALTER ENDPOINT. Weitere Informationen finden Sie unter ALTER ENDPOINT (Transact-SQL).

Sie können auch die Verschlüsselungsalgorithmen steuern, die von einem Endpunkt verwendet werden können, indem Sie einen der folgenden Werte für die ALGORITHM-Option in einer CREATE ENDPOINT- oder ALTER ENDPOINT-Anweisung angeben:

ALGORITHM-Wert

Beschreibung

RC4

Gibt an, dass der Endpunkt den RC4-Algorithmus verwenden muss. Dies ist die Standardeinstellung.

AES

Gibt an, dass der Endpunkt den AES-Algorithmus verwenden muss.

AES RC4

Gibt an, dass die beiden Endpunkte einen Verschlüsselungsalgorithmus aushandeln, wobei dieser Endpunkt dem AES-Algorithmus den Vorzug gibt.

RC4 AES

Gibt an, dass die beiden Endpunkte einen Verschlüsselungsalgorithmus aushandeln, wobei dieser Endpunkt dem RC4-Algorithmus den Vorzug gibt.

Wenn das Verbinden der Endpunkte beide Algorithmen angibt, jedoch in unterschiedlicher Reihenfolge, wird die Einstellung des Endpunkts verwendet, der die Verbindung annimmt.

HinweisHinweis

Obwohl deutlich schneller als AES ist RC4 ein relativ schwacher Algorithmus, während AES ein relativ starker Algorithmus ist. Deshalb wird empfohlen, den AES-Algorithmus zu verwenden.

Informationen zur Transact-SQL-Syntax zum Angeben der Verschlüsselung finden Sie unter CREATE ENDPOINT (Transact-SQL).