Sdílet prostřednictvím


CREATE ENDPOINT (Transact-SQL)

platí pro:SQL Server

Vytvoří koncové body a definuje jejich vlastnosti, včetně metod dostupných pro klientské aplikace. Informace o souvisejících oprávněních najdete v tématu UDĚLENÍ oprávnění koncového bodu (Transact-SQL).

Syntaxe pro CREATE ENDPOINT se dá logicky rozdělit do dvou částí:

  • První část začíná as a končí před klauzulí FOR.

    V této části zadáte informace specifické pro přenosový protokol (TCP) a nastavíte číslo portu naslouchání koncovému bodu a také metodu ověřování koncového bodu nebo seznam IP adres (pokud existuje), které chcete omezit na přístup ke koncovému bodu.

  • Druhá část začíná klauzulí FOR.

    V této části definujete datovou část podporovanou v koncovém bodu. Datová část může být jedním z několika podporovaných typů: Transact-SQL, service broker, zrcadlení databáze. V této části také zahrnete informace specifické pro jazyk.

Poznámka:

Nativní webové služby XML (koncové body SOAP/HTTP) byly odebrány v SQL Serveru 2012 (11.x).

Transact-SQL konvence syntaxe

Syntaxe

CREATE ENDPOINT endPointName [ AUTHORIZATION login ]
[ STATE = { STARTED | STOPPED | DISABLED } ]
AS { TCP } (
   <protocol_specific_arguments>
        )
FOR { TSQL | SERVICE_BROKER | DATABASE_MIRRORING } (
   <language_specific_arguments>
        )

<AS TCP_protocol_specific_arguments> ::=
AS TCP (
  LISTENER_PORT = listenerPort
  [ [ , ] LISTENER_IP = ALL | ( xx.xx.xx.xx IPv4 address ) | ( '__:__1' IPv6 address ) ]

)

<FOR TSQL_language_specific_arguments> ::=
FOR TSQL (
   [ ENCRYPTION = { NEGOTIATED | STRICT } ]
)

<FOR SERVICE_BROKER_language_specific_arguments> ::=
FOR SERVICE_BROKER (
   [ AUTHENTICATION = {
            WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]
      | CERTIFICATE certificate_name
      | WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ] CERTIFICATE certificate_name
      | CERTIFICATE certificate_name WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]
    } ]
   [ [ , ] ENCRYPTION = { DISABLED | { { SUPPORTED | REQUIRED }
       [ ALGORITHM { AES | RC4 | AES RC4 | RC4 AES } ] }
   ]
   [ [ , ] MESSAGE_FORWARDING = { ENABLED | DISABLED } ]
   [ [ , ] MESSAGE_FORWARD_SIZE = forward_size ]
)

<FOR DATABASE_MIRRORING_language_specific_arguments> ::=
FOR DATABASE_MIRRORING (
   [ AUTHENTICATION = {
            WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]
      | CERTIFICATE certificate_name
      | WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ] CERTIFICATE certificate_name
      | CERTIFICATE certificate_name WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]
   [ [ [ , ] ] ENCRYPTION = { DISABLED | { { SUPPORTED | REQUIRED }
       [ ALGORITHM { AES | RC4 | AES RC4 | RC4 AES } ] }

    ]
   [ , ] ROLE = { WITNESS | PARTNER | ALL }
)

Arguments

endPointName

Přiřazený název koncového bodu, který vytváříte. Používá se při aktualizaci nebo odstranění koncového bodu.

Přihlášení k autorizaci

Určuje platné přihlášení k SQL Serveru nebo Windows, které má přiřazené vlastnictví nově vytvořeného objektu koncového bodu. Pokud autorizaci nezadáte, ve výchozím nastavení se volající stane vlastníkem nově vytvořeného objektu.

Chcete-li přiřadit vlastnictví zadáním AUTORIZACE, volající musí mít oprávnění IMPERSONATE k zadanému přihlášení.

Možnost AUTORIZACE není v ALTER ENDPOINT dostupná. Vlastnictví je možné přiřadit pouze při vytvoření koncového bodu.

Pokud chcete znovu přiřadit vlastnictví, přečtěte si téma DROP ENDPOINT (Transact-SQL) a pak se vraťte k tomuto článku, abyste mohli koncový bod znovu vytvořit.

STATE = { STARTED | ZASTAVENO | ZAKÁZÁNO }

Stav koncového bodu při jeho vytvoření Pokud při vytváření koncového bodu není zadaný stav, je výchozí hodnota ZASTAVENO.

ZAČAL

Koncový bod se spustí a aktivně naslouchá připojením.

INVALIDNÍ

Koncový bod je zakázaný. V tomto stavu server naslouchá požadavkům portů, ale vrací klientům chyby.

ZASTAVENÝ

Koncový bod je zastavený. V tomto stavu server nereaguje na port koncového bodu ani nereaguje na žádné pokusy o použití koncového bodu.

Pokud chcete změnit stav, použijte příkaz ALTER ENDPOINT (Transact-SQL).

AS { TCP }

Určuje přenosový protokol, který se má použít.

FOR { TSQL | SERVICE_BROKER | DATABASE_MIRRORING }

Určuje typ datové části.

V současné době neexistují žádné Transact-SQL argumenty specifické pro jazyk, které by parametr předal <language_specific_arguments> .

Možnost protokolu TCP

Následující argumenty platí pouze pro možnost protokolu TCP.

LISTENER_PORT = listenerPort

Určuje číslo portu naslouchané pro připojení protokolem TCP/IP zprostředkovatele služeb. Podle konvence se používá číslo 5022, ale jakékoli číslo mezi 1024 a 32767 je platné.

LISTENER_IP = ALL | (4-part-ip) | ( "ip_address_v6" )

Určuje IP adresu, na které koncový bod naslouchá. Výchozí hodnota je ALL. To znamená, že naslouchací proces přijme připojení na libovolné platné IP adrese.

Pokud konfigurujete zrcadlení databáze s IP adresou místo plně kvalifikovaného názvu domény (ALTER DATABASE SET PARTNER = partner_IP_address nebo ALTER DATABASE SET WITNESS = witness_IP_address), musíte místo vytváření koncových bodů zrcadlení zadat LISTENER_IP =IP_addressLISTENER_IP=ALL .

Možnosti T-SQL

ŠIFROVÁNÍ = { NEGOTIATED | STRICT }

Platí pro: SQL Server 2022 (16.x) a novější

Určuje způsob použití šifrování v procesu. Výchozí hodnota je NEGOTIATED z důvodů kompatibility.

VYJEDNÁVAL

Způsob šifrování připojení se vyjednává mezi serverem a klientem. Skutečné navazované připojení by mohlo šifrovat:

  • Pouze zpráva LOGIN7.
  • Všechny zprávy kromě PRELOGIN.
  • Všechny zprávy.

STRIKTNÍ

Určuje, že všechny zprávy odeslané do tohoto koncového bodu musí být zašifrované a náhradní certifikát by koncový bod nepředal. Pokud hlavička TLS není první zprávou, server přeruší připojení.

možnosti SERVICE_BROKER a DATABASE_MIRRORING

Následující argumenty OVĚŘOVÁNÍ a ŠIFROVÁNÍ jsou společné pro možnosti SERVICE_BROKER a DATABASE_MIRRORING.

Poznámka:

Možnosti specifické pro SERVICE_BROKER najdete v části SERVICE_BROKER Možnosti dále v této části. Možnosti specifické pro DATABASE_MIRRORING najdete v části DATABASE_MIRRORING Možnosti dále v této části.

OVĚŘOVÁNÍ = <authentication_options>

Určuje požadavky na ověřování TCP/IP pro připojení pro tento koncový bod. Výchozí hodnota je WINDOWS.

Mezi podporované metody ověřování patří PROTOKOL NTLM nebo Kerberos nebo obojí.

Důležité

Všechna připojení zrcadlení v instanci serveru používají koncový bod zrcadlení jednoúčelové databáze. Všechny pokusy o vytvoření dalšího koncového bodu zrcadlení databáze selžou.

WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]

Určuje, že se koncový bod má připojit pomocí ověřovacího protokolu systému Windows k ověření koncových bodů. Toto je výchozí hodnota.

Pokud zadáte metodu autorizace (NTLM nebo KERBEROS), tato metoda se vždy používá jako ověřovací protokol. Výchozí hodnota NEGOTIATE způsobí, že koncový bod použije protokol vyjednávání systému Windows k výběru protokolu NTLM nebo Kerberos.

CERTIFICATE_NAME CERTIFIKÁTU

Určuje, že koncový bod se má ověřit připojení pomocí certifikátu určeného certificate_name k vytvoření identity pro autorizaci. Vzdálený koncový bod musí mít certifikát s veřejným klíčem, který odpovídá privátnímu klíči zadaného certifikátu.

WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ] CERTIFIKÁT certificate_name

Určuje, že koncový bod se má pokusit připojit pomocí ověřování systému Windows a pokud se tento pokus nezdaří, zkuste použít zadaný certifikát.

CERTIFIKÁT CERTIFICATE_NAME WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]

Určuje, že se koncový bod pokusí připojit pomocí zadaného certifikátu, a pokud se tento pokus nezdaří, zkuste použít ověřování systému Windows.

ŠIFROVÁNÍ = { ZAKÁZÁNO | PODPOROVÁNO | REQUIRED } [ ALGORITMUS { AES | RC4 | AES RC4 | RC4 AES } ]

Určuje, jestli se v procesu používá šifrování. Výchozí hodnota je POVINNÁ.

INVALIDNÍ

Určuje, že data odesílaná přes připojení nejsou šifrovaná.

PODPOROVANÝ

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 připojení k tomuto koncovému bodu musí používat šifrování. Pokud se tedy chcete připojit k tomuto koncovému bodu, musí mít jiný koncový bod nastavený šifrování na PODPOROVANÉ nebo POVINNÉ.

Volitelně můžete pomocí argumentu ALGORITMU určit formu šifrování, kterou koncový bod používá, následujícím způsobem:

standard AES

Určuje, že koncový bod musí používat algoritmus AES. Toto je výchozí nastavení v SQL Serveru 2016 (13.x) a novějším.

RC4

Určuje, že koncový bod musí používat algoritmus RC4. Toto je výchozí hodnota prostřednictvím SQL Serveru 2014 (12.x).

Poznámka:

Algoritmus RC4 je podporován pouze pro zpětnou kompatibilitu. Nový materiál lze šifrovat pouze pomocí RC4 nebo RC4_128, pokud je databáze v kompatibilitě 90 nebo 100. (Nedoporučuje se.) Místo toho použijte novější algoritmus, například jeden z algoritmů AES. V SQL Serveru 2012 (11.x) a novějších verzích lze materiál šifrovaný pomocí RC4 nebo RC4_128 dešifrovat v libovolné úrovni kompatibility.

AES RC4

Určuje, že dva koncové body budou vyjednávat pro šifrovací algoritmus s tímto koncovým bodem, který dává přednost algoritmu AES.

RC4 AES

Určuje, že dva koncové body budou vyjednávat pro šifrovací algoritmus s tímto koncovým bodem, který dává přednost algoritmu RC4.

Poznámka:

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.

Pokud oba koncové body určují oba algoritmy, ale v různých pořadích, koncový bod přijímá připojení vyhrává.

možnosti SERVICE_BROKER

Následující argumenty jsou specifické pro SERVICE_BROKER možnost.

MESSAGE_FORWARDING = { ENABLED | ZAKÁZÁNO }

Určuje, jestli se budou předávat zprávy přijaté tímto koncovým bodem pro služby umístěné jinde.

ZPŘÍSTUPNĚNÝ

Přeposílejte zprávy, pokud je dostupná adresa pro přeposílání.

INVALIDNÍ

Zahodí zprávy pro služby umístěné jinde. Toto je výchozí hodnota.

MESSAGE_FORWARD_SIZE = forward_size

Určuje maximální velikost úložiště v megabajtech, která se má přidělit koncovému bodu při ukládání zpráv, které se mají předávat.

možnosti DATABASE_MIRRORING

Následující argument je specifický pro možnost DATABASE_MIRRORING.

ROLE = { WITNESS | PARTNER | ALL }

Určuje roli nebo role zrcadlení databáze, které koncový bod podporuje.

SVĚDEK

Umožňuje koncovému bodu provádět roli určující kopie clusteru v procesu zrcadlení.

Poznámka:

Pro edici SQL Server 2005 Express je jedinou dostupnou možností.

PARTNER

Umožňuje koncovému bodu provádět roli partnera v procesu zrcadlení.

ALL

Umožňuje koncovému bodu provádět roli svědka i partnera v procesu zrcadlení.

Další informace o těchto rolích naleznete v tématu Zrcadlení databáze (SQL Server).

Poznámka:

Pro DATABASE_MIRRORING neexistuje žádný výchozí port.

Poznámky

Příkazy DDL koncového bodu nelze spustit uvnitř transakce uživatele. Příkazy DDL koncového bodu selžou ani v případě, že transakce na úrovni izolace aktivního snímku používá změněný koncový bod.

Požadavky se dají spouštět na koncovém bodu následujícím postupem:

  • Členové pevné role serveru správce systému

  • Vlastník koncového bodu

  • Uživatelé nebo skupiny s uděleným oprávněním CONNECT ke koncovému bodu

Povolení

Vyžaduje oprávnění CREATE ENDPOINT nebo členství v pevné roli serveru správce systému . Další informace najdete v tématu UDĚLENÍ oprávnění koncového bodu (Transact-SQL).

Example

Vytvoření koncového bodu zrcadlení databáze

Následující příklad vytvoří koncový bod zrcadlení databáze. Koncový bod používá číslo 7022portu, i když by fungovalo jakékoli dostupné číslo portu. Koncový bod je nakonfigurovaný tak, aby používal ověřování systému Windows pouze pomocí protokolu Kerberos. Tato ENCRYPTION možnost je nakonfigurovaná na nedefaultní hodnotu SUPPORTED , která podporuje šifrovaná nebo nešifrovaná data. Koncový bod se konfiguruje tak, aby podporoval role partnera i určujícího partnera.

CREATE ENDPOINT endpoint_mirroring
    STATE = STARTED
    AS TCP ( LISTENER_PORT = 7022 )
    FOR DATABASE_MIRRORING (
       AUTHENTICATION = WINDOWS KERBEROS,
       ENCRYPTION = SUPPORTED,
       ROLE=ALL);
GO

Vytvoření nového koncového bodu odkazujícího na konkrétní adresu a port IPv4

CREATE ENDPOINT ipv4_endpoint_special
STATE = STARTED
AS TCP (
    LISTENER_PORT = 55555, LISTENER_IP = (10.0.75.1)
)
FOR TSQL ();

GRANT CONNECT ON ENDPOINT::[TSQL Default TCP] TO public; -- Keep existing public permission on default endpoint for demo purpose
GRANT CONNECT ON ENDPOINT::ipv4_endpoint_special
TO login_name;

Vytvoření nového koncového bodu odkazujícího na konkrétní adresu a port IPv6

CREATE ENDPOINT ipv6_endpoint_special STATE = STARTED AS TCP (
    LISTENER_PORT = 55555,
    LISTENER_IP = ('::1')
)
FOR TSQL();

GRANT CONNECT ON ENDPOINT::[TSQL Default TCP] TO PUBLIC;
GRANT CONNECT ON ENDPOINT::ipv6_endpoint_special TO PUBLIC;

Vytvoření nového koncového bodu s přísným šifrováním

CREATE ENDPOINT [TDSSConnection]   
STATE = STARTED   
AS TCP   
   (LISTENER_PORT = 1433, LISTENER_IP = ALL)   
FOR TSQL 
    (ENCRYPTION = STRICT ) ;   
GO