Erstellen eines Endpunkts der Datenbankspiegelung für Windows-Authentifizierung (Transact-SQL)

Gilt für:SQL Server

In diesem Thema wird beschrieben, wie ein Datenbankspiegelungs-Endpunkt in mit Transact-SQL in SQL Server erstellt wird, der die Windows-Authentifizierung verwendet. Zur Unterstützung der Datenbankspiegelung oder von Always On-Verfügbarkeitsgruppen benötigt jede Instanz von SQL Server einen Datenbankspiegelungsendpunkt. Eine Serverinstanz kann nur über einen Datenbankspiegelungsendpunkt verfügen, der einen einzelnen Port besitzt. Ein Datenbankspiegelungsendpunkt kann einen beliebigen Port verwenden, der auf dem lokalen System verfügbar ist, wenn der Endpunkt erstellt wird. Alle Datenbankspiegelungssitzungen auf einer Serverinstanz lauschen an diesem Port, und alle eingehenden Verbindungen für die Datenbankspiegelung verwenden diesen Port.

Wichtig

Wenn ein Datenbankspiegelungs-Endpunkt vorhanden und bereits in Gebrauch ist, empfiehlt es sich, diesen Endpunkt zu verwenden. Das Löschen eines verwendeten Endpunkts unterbricht bestehende Sitzungen.

In diesem Thema

Bevor Sie beginnen

Sicherheit

Die Authentifizierungs- und Verschlüsselungsmethoden der Serverinstanz werden vom Systemadministrator festgelegt.

Warnung

Der RC4-Algorithmus ist veraltet. Diese Funktion wird in einer zukünftigen Version von SQL Serverentfernt. Nutzen Sie diese Funktionen bei Neuentwicklungen nicht mehr, und planen Sie die Änderung von Anwendungen, die diese Funktion zurzeit verwenden. Wir empfehlen, dass Sie AES verwenden.

Berechtigungen

Erfordert die CREATE ENDPOINT-Berechtigung oder die Mitgliedschaft in der festen sysadmin-Serverrolle. Weitere Informationen finden Sie unter GRANT Endpunktberechtigungen (Transact-SQL).

Verwenden von Transact-SQL

So erstellen Sie einen Datenbankspiegelungs-Endpunkt, der die Windows-Authentifizierung verwendet

  1. Stellen Sie eine Verbindung mit der Instanz von SQL Server her, für die Sie einen Endpunkt zur Datenbankspiegelung erstellen möchten.

  2. Klicken Sie in der Standardleiste auf Neue Abfrage.

  3. Ermitteln Sie mithilfe der folgenden Anweisung, ob ein Endpunkt für die Datenbankspiegelung bereits vorhanden ist:

    SELECT name, role_desc, state_desc FROM sys.database_mirroring_endpoints;   
    

    Wichtig

    Falls bereits ein Endpunkt der Datenbankspiegelung für die Serverinstanz vorhanden ist, verwenden Sie diesen Endpunkt für alle anderen Sitzungen, die Sie für die Serverinstanz einrichten.

  4. Wenn Sie Transact-SQL zum Erstellen eines Endpunkts mit Windows-Authentifizierung verwenden möchten, verwenden Sie eine CREATE ENDPOINT-Anweisung. Die Anweisung hat die folgende allgemeine Form:

    CREATE ENDPOINT *\<endpointName>*  
    
    STATE=STARTED  
    
    AS TCP ( LISTENER_PORT = *\<listenerPortList>* )  
    
    FOR DATABASE_MIRRORING  
    
    (  
    
    [ AUTHENTICATION = **WINDOWS** [ *\<authorizationMethod>* ]  
    
    ]  
    
    [ [**,**] ENCRYPTION = **REQUIRED**  
    
    [ ALGORITHM { *\<algorithm>* } ]  
    
    ]  
    
    [**,**] ROLE = *\<role>*  
    
    )  
    

    Wo:

    • <Endpunktname> ist der eindeutige Name für den Endpunkt der Datenbankspiegelung der Serverinstanz.

    • STARTED gibt an, dass der Endpunkt gestartet wird und auf Verbindungen zu lauschen beginnt. Ein Endpunkt der Datenbankspiegelung wird in der Regel im Status STARTED erstellt. Alternativ können Sie eine Sitzung im Status STOPPED (Standard) oder DISABLED starten.

    • <listenerPortList> ist eine einzelne Portnummer (nnnn), an der der Server auf Datenbankspiegelungsnachrichten lauschen soll. Nur TCP ist zulässig; wenn Sie ein anderes Protokoll angeben, wird ein Fehler ausgelöst.

      Eine Portnummer kann in einem Computersystem nur einmal verwendet werden. Ein Datenbankspiegelungsendpunkt kann einen beliebigen Port verwenden, der auf dem lokalen System verfügbar ist, wenn der Endpunkt erstellt wird. Verwenden Sie die folgende Transact-SQL-Anweisung, um den Port anzugeben, der zurzeit von TCP-Endpunkten im System verwendet wird:

      SELECT name, port FROM sys.tcp_endpoints;  
      

      Wichtig

      Jede Serverinstanz erfordert genau einen eindeutigen Listener-Port.

    • Bei der Windows-Authentifizierung ist die AUTHENTICATION-Option optional, es sei denn, der Endpunkt soll nur NTLM oder Kerberos zum Authentifzieren von Verbindungen verwenden. <authorizationMethod> gibt die Methode zum Authentifizieren der Verbindungen an: NTLM, KERBEROS oder NEGOTIATE. Die Standardeinstellung, NEGOTIATE, bewirkt, dass der Endpunkt das Aushandlungsprotokoll von Windows verwendet, um NTLM oder Kerberos auszuwählen. Die Aushandlung ermöglicht Verbindungen mit oder ohne Authentifizierung, abhängig von der Authentifizierungsebene des anderen Endpunkts.

      Hinweis

      Um die Kerberos-Authentifizierung für die Kommunikation zwischen Verfügbarkeitsgruppenendpunkten zu verwenden, registrieren Sie einen Dienstprinzipalnamen für Kerberos-Verbindungen für die von der Verfügbarkeitsgruppe verwendeten Datenbankspiegelungsendpunkte.

    • ENCRYPTION ist standardmäßig auf REQUIRED festgelegt. Dies bedeutet, dass alle Verbindungen mit diesem Endpunkt Verschlüsselungen verwenden müssen. Sie können die Verschlüsselung jedoch auch deaktivieren oder als optional für einen Endpunkt festlegen. Die Alternativen lauten folgendermaßen:

      Wert Definition
      DEAKTIVIERT Gibt an, dass über eine Verbindung gesendete Daten nicht verschlüsselt werden.
      UNTERSTÜTZT Gibt an, dass die Daten nur verschlüsselt werden, wenn der gegenüberliegende Endpunkt SUPPORTED oder REQUIRED angibt.
      ERFORDERLICH Gibt an, dass über eine Verbindung gesendete Daten verschlüsselt werden müssen.

      Wenn ein Endpunkt Verschlüsselung erfordert, muss für den anderen Endpunkt ENCRYPTION auf SUPPORTED oder REQUIRED festgelegt werden.

    • <algorithm> stellt die Option zum Angeben der Verschlüsselungsstandards für den Endpunkt bereit. Der Wert von <algorithm> kann einer der folgenden Algorithmen oder eine Kombination solcher Algorithmen sein: RC4, AES, AES RC4 oder RC4 AES.

      Der AES-Algorithmus für den Endpunkt für die Datenbankspiegelung verwendet eine Schlüssellänge von 128 Bit.

      AES RC4 gibt an, dass dieser Endpunkt den Verschlüsselungsalgorithmus verhandelt, wobei der AES-Algorithmus bevorzugt wird. RC4 AES legt fest, dass dieser Endpunkt den Verschlüsselungsalgorithmus aushandeln wird, wobei der RC4-Algorithmus bevorzugt wird. Wenn beide Endpunkte beide Algorithmen angeben, jedoch in unterschiedlicher Reihenfolge, gewinnt der Endpunkt, der die Verbindung annimmt. Stellen Sie explizit denselben Algorithmus bereit, um Verbindungsfehler zwischen verschiedenen Servern zu verhindern.

      Warnung

      Der RC4-Algorithmus ist veraltet. Diese Funktion wird in einer zukünftigen Version von SQL Serverentfernt. Nutzen Sie diese Funktionen bei Neuentwicklungen nicht mehr, und planen Sie die Änderung von Anwendungen, die diese Funktion zurzeit verwenden. Wir empfehlen, dass Sie AES verwenden.

    • <role> definiert die Rolle bzw. Rollen, die der Server ausführen kann. Die Angabe ROLE ist erforderlich. Die Rolle des Endpunkts ist jedoch nur für die Datenbankspiegelung relevant. Für Always On-Verfügbarkeitsgruppen wird die Rolle des Endpunkts ignoriert.

      Wenn Sie zulassen möchten, dass eine Serverinstanz für eine Datenbankspiegelungssitzung in einer Rolle und für eine andere Sitzung in einer anderen Rolle fungiert, geben Sie ROLE=ALL an. Wenn Sie eine Serverinstanz auf die Partner- oder Zeugenrolle beschränken möchten, geben Sie ROLE = PARTNER bzw. ROLE = WITNESS an.

      Hinweis

      Weitere Informationen zu den Datenbank-Spiegelungsoptionen für die verschiedenen Editionen von SQL Server finden Sie unter Von den SQL Server 2016-Editionen unterstützte Funktionen.

    Eine vollständige Beschreibung der CREATE ENDPOINT Syntax finden Sie unter CREATE ENDPOINT (Transact-SQL).

    Hinweis

    Um einen vorhandenen Endpunkt zu ändern, verwenden Sie ALTER ENDPOINT (Transact-SQL).

Beispiel: Erstellen von Endpunkten mit Unterstützung der Datenbankspiegelung (Transact-SQL)

Im folgenden Beispiel werden Datenbankspiegelungs-Endpunkte für die Standardserverinstanzen auf drei separaten Computersystemen erstellt:

Rolle der Serverinstanz Name des Hostcomputers
Partner (zunächst in der Hauptrolle) SQLHOST01\.
Partner (anfangs in der gespiegelten Rolle) SQLHOST02\.
Zeuge SQLHOST03\.

In diesem Beispiel verwenden alle drei Endpunkte die Portnummer 7022, wobei jede verfügbare Portnummer möglich wäre. Die Option AUTHENTICATION ist unnötig, da die Endpunkte den Standardtyp, also die Windows-Authentifizierung verwenden. Die Option ENCRYPTION ist ebenfalls überflüssig, da alle Endpunkte das Authentifizierungsverfahren für eine Verbindung aushandeln sollen, was bei der Windows-Authentifizierung das Standardverhalten darstellt. Außerdem erfordern alle Endpunkte die Verschlüsselung, was ebenfalls zum Standardverhalten gehört.

Jede Serverinstanz ist darauf beschränkt, entweder als Partner oder Zeuge zu dienen, und der Endpunkt jedes Servers gibt ausdrücklich an, welche Rolle (ROLE=PARTNER oder ROLE=ZEUGEN) verwendet wird.

Wichtig

Jede Serverinstanz kann nur einen Endpunkt besitzen. Wenn Sie also möchten, dass eine Serverinstanz in einigen Sitzungen als Partner und in anderen als Zeuge fungiert, geben Sie ROLE=ALL an.

--Endpoint for initial principal server instance, which  
--is the only server instance running on SQLHOST01.  
CREATE ENDPOINT endpoint_mirroring  
    STATE = STARTED  
    AS TCP ( LISTENER_PORT = 7022 )  
    FOR DATABASE_MIRRORING (ROLE=PARTNER);  
GO  
--Endpoint for initial mirror server instance, which  
--is the only server instance running on SQLHOST02.  
CREATE ENDPOINT endpoint_mirroring  
    STATE = STARTED  
    AS TCP ( LISTENER_PORT = 7022 )  
    FOR DATABASE_MIRRORING (ROLE=PARTNER);  
GO  
--Endpoint for witness server instance, which  
--is the only server instance running on SQLHOST03.  
CREATE ENDPOINT endpoint_mirroring  
    STATE = STARTED  
    AS TCP ( LISTENER_PORT = 7022 )  
    FOR DATABASE_MIRRORING (ROLE=WITNESS);  
GO  

Verwandte Aufgaben

So konfigurieren Sie einen Datenbankspiegelungs-Endpunkt

Informationen zum Endpunkt für die Datenbankspiegelung anzeigen

Siehe auch

ALTER ENDPOINT (Transact-SQL)
Auswählen eines Verschlüsselungsalgorithmus
CREATE ENDPOINT (Transact-SQL)
Angeben einer Servernetzwerkadresse (Datenbankspiegelung)
Beispiel: Einrichten der Datenbankspiegelung mithilfe der Windows-Authentifizierung (Transact-SQL)
Der Datenbankspiegelungs-Endpunkt (SQL Server)