Vytvoření koncového bodu zrcadlení databáze pro ověřování Windows (Transact-SQL)

platí pro:SQL Server

Toto téma popisuje, jak v SQL Serveru vytvořit koncový bod pro zrcadlení databáze, který používá ověřování systému Windows, pomocí jazyka Transact-SQL. Pro podporu zrcadlení databáze nebo skupin dostupnosti AlwaysOn každá instance SQL Server vyžaduje koncový bod zrcadlení databáze. Serverová instance může mít pouze jeden koncový bod pro zrcadlení databáze, který používá jediný port. Koncový bod zrcadlení databáze může při svém vytvoření použít libovolný port, který je k dispozici v místním počítači. Všechny relace zrcadlení databáze na instanci serveru naslouchají na tomto portu a všechna příchozí připojení pro zrcadlení databáze používají tento port.

Important

Pokud existuje koncový bod zrcadlení databáze a už se používá, doporučujeme tento koncový bod použít. Odstranění právě používaného koncového bodu přeruší stávající relace.

V tomto tématu

Než začnete

Zabezpečení

Metody ověřování a šifrování instance serveru jsou vytvořeny správcem systému.

Warning

Algoritmus RC4 je zastaralý. Tato funkce bude odebrána v budoucí verzi SQL Serveru. Nepoužívejte tuto funkci v nové vývojové práci a naplánujte úpravu aplikací, které tuto funkci aktuálně používají. Doporučujeme používat AES.

Povolení

Vyžaduje oprávnění CREATE ENDPOINT nebo členství v pevné roli serveru sysadmin. Další informace najdete v tématu GRANT Oprávnění koncového bodu (Transact-SQL).

Použití Transact-SQL

Vytvořit koncový bod zrcadlení databáze, který používá ověřování systému Windows

  1. Připojte se k instanci SQL Server, na které chcete vytvořit koncový bod zrcadlení databáze.

  2. Na panelu Standard klikněte na Nový dotaz.

  3. Pomocí následujícího příkazu zjistěte, jestli už existuje koncový bod zrcadlení databáze:

    SELECT name, role_desc, state_desc FROM sys.database_mirroring_endpoints;   
    

    Important

    Pokud pro danou instanci serveru již existuje koncový bod zrcadlení databáze, použijte tento koncový bod pro všechny další relace, které na této instanci serveru vytvoříte.

  4. Pokud chcete použít Transact-SQL k vytvoření koncového bodu pro použití s ověřováním Windows, použijte CREATE ENDPOINT příkaz. Příkaz má následující obecný tvar:

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

    Where:

    • <endpointName> je jedinečný název koncového bodu zrcadlení databáze instance serveru.

    • SPUŠTĚNO určuje, že má být koncový bod spuštěn a začít naslouchat příchozím připojením. Koncový bod zrcadlení databáze se obvykle vytvoří ve stavu STARTED. Případně můžete zahájit relaci ve stavu „Zastaveno“ (výchozí) nebo ve stavu „Zakázáno“.

    • <listenerPortList> je jedno číslo portu (nnnn), na kterém má server naslouchat zprávám pro zrcadlení databáze. Je povolen pouze protokol TCP; zadáním jakéhokoli jiného protokolu dojde k chybě.

      Číslo portu lze použít pouze jednou na počítačový systém. Koncový bod zrcadlení databáze může při svém vytvoření použít libovolný port, který je k dispozici v místním počítači. K identifikaci portů aktuálně používaných koncovými body PROTOKOLU TCP v systému použijte následující příkaz Transact-SQL:

      SELECT name, port FROM sys.tcp_endpoints;  
      

      Important

      Každá instance serveru vyžaduje právě jeden jedinečný naslouchací port.

    • Pro ověřování Windows je možnost OVĚŘOVÁNÍ nepovinná, pokud nechcete, aby koncový bod k ověřování připojení používal pouze protokol NTLM nebo Kerberos. <authorizationMethod> určuje metodu použitou k ověřování připojení jako jeden z následujících: NTLM, KERBEROS nebo NEGOTIATE. Výchozí hodnota NEGOTIATE způsobí, že koncový bod použije protokol vyjednávání Windows k výběru protokolu NTLM nebo Kerberos. Negociace umožňuje připojení s ověřením nebo bez něj v závislosti na úrovni ověřování protějšího koncového bodu.

      Note

      Pokud chcete použít ověřování protokolem Kerberos pro komunikaci mezi koncovými body skupiny dostupnosti (AG), zaregistrujte název hlavní služby pro připojení Kerberos pro koncové body zrcadlení databáze používané skupinou dostupnosti.

    • Šifrování je ve výchozím nastavení nastavené na POVINNÉ. To znamená, že všechna připojení k tomuto koncovému bodu musí používat šifrování. Šifrování ale můžete zakázat nebo ho nastavit jako volitelné v koncovém bodu. Alternativy jsou následující:

      Value Definition
      DISABLED Určuje, že data odesílaná přes připojení nejsou šifrovaná.
      PODPOROVÁNO Určuje, že data se šifrují pouze v případě, že opačný koncový bod určuje BUĎ PODPOROVANÉ, nebo POVINNÉ.
      POŽADOVANÝ Určuje, že data odesílaná přes připojení musí být šifrovaná.

      Pokud koncový bod vyžaduje šifrování, musí mít druhý koncový bod nastavené šifrování na PODPOROVANÉ nebo POVINNÉ.

    • <algoritmus> poskytuje možnost zadat standardy šifrování pro koncový bod. Hodnota <algoritmu> může být jeden z následujících algoritmů nebo kombinací algoritmů: RC4, AES, AES RC4 nebo RC4 AES.

      Algoritmus AES pro koncový bod zrcadlení databáze používá délku 128bitového klíče.

      AES RC4 určuje, že tento koncový bod vyjedná pro šifrovací algoritmus a dává přednost algoritmu AES. Analýza RC4 AES určuje, že tento koncový bod bude vyjednávat pro šifrovací algoritmus a dává přednost algoritmu RC4. Pokud oba koncové body určují oba algoritmy, ale v různém pořadí, rozhodující je koncový bod, který připojení přijímá. Poskytněte stejný algoritmus explicitně, abyste se vyhnuli chybám připojení mezi různými servery.

      Warning

      Algoritmus RC4 je zastaralý. Tato funkce bude odebrána v budoucí verzi SQL Serveru. Nepoužívejte tuto funkci v nové vývojové práci a naplánujte úpravu aplikací, které tuto funkci aktuálně používají. Doporučujeme používat AES.

    • <role> definuje roli nebo role, které může server provádět. ROLE Zadání je povinné. Role koncového bodu je ale relevantní jenom pro zrcadlení databáze. U skupin dostupnosti AlwaysOn se role koncového bodu ignoruje.

      Pokud chcete, aby instance serveru fungovala v jedné roli pro jednu relaci zrcadlení databáze a v jiné roli pro jinou relaci, zadejte ROLE=ALL. Chcete-li instanci serveru omezit tak, aby byla buď partnerem, nebo svědkem, zadejte ROLE = PARTNER nebo ROLE = WITNESS v uvedeném pořadí.

      Note

      Pro seznam funkcí podporovaných edicí v SQL Server viz Edice a podporované funkce SQL Server 2016.

    Úplný popis CREATE ENDPOINT syntaxe najdete v tématu CREATE ENDPOINT (Transact-SQL).

    Note

    Pokud chcete změnit existující koncový bod, použijte ALTER ENDPOINT (Transact-SQL).

Příklad: Vytváření koncových bodů pro podporu zrcadlení databáze (Transact-SQL)

Následující příklad vytváří koncové body pro zrcadlení databáze pro výchozí instance serverů ve třech samostatných počítačových systémech:

Role instance serveru Název hostitelského počítače
Partner (původně v hlavní roli) SQLHOST01\.
Partner (původně v zrcadlové roli) SQLHOST02\.
Witness SQLHOST03\.

V tomto příkladu všechny tři koncové body používají číslo portu 7022, i když by fungovalo jakékoli dostupné číslo portu. Možnost OVĚŘOVÁNÍ není nutná, protože koncové body používají výchozí typ Windows Ověřování. Možnost ŠIFROVÁNÍ je také nepotřebná, protože koncové body jsou určeny k vyjednání metody ověřování pro připojení, což je výchozí chování pro ověřování Windows. Také všechny koncové body vyžadují šifrování, což je výchozí chování.

Každá instance serveru může sloužit pouze buď jako partner, nebo jako svědek, a koncový bod každého serveru výslovně určuje, která role to je (ROLE=PARTNER nebo ROLE=WITNESS).

Important

Každá instance serveru může mít pouze jeden koncový bod. Proto pokud chcete, aby instance serveru byla partnerem v některých relacích a svědkem v jiných, zadejte ROLE=ALL.

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

Související úkoly

Konfigurace koncového bodu zrcadlení databáze

Pro zobrazení informací o koncovém bodu zrcadlení databáze

  • sys.database_mirroring_endpoints (Transact-SQL)

Viz také

ALTER ENDPOINT (Transact-SQL)
Volba šifrovacího algoritmu
CREATE ENDPOINT (Transact-SQL)
Zadání síťové adresy serveru (zrcadlení databáze)
Příklad: Nastavení zrcadlení databáze pomocí ověřování systému Windows (Transact-SQL)
Koncový bod zrcadlení databáze (SQL Server)