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.

Syntaxi pro CREATE ENDPOINT lze 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.

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 | ( four_part_ipv4_address ) | ( 'ip_address_v6' ) ]
)

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

Tato AUTHORIZATION možnost není dostupná v ALTER ENDPOINTsouboru . 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 a pak se vraťte do tohoto článku a znovu vytvořte koncový bod.

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

Stav koncového bodu při jeho vytvoření Pokud se stav při vytvoření koncového bodu nezadá, STOPPED je výchozí hodnota.

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.

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 | (four_part_ipv4_address) | ( "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

AUTHENTICATION Následující argumenty a ENCRYPTION argumenty jsou společné pro možnosti SERVICE_BROKER a DATABASE_MIRRORING možnosti.

Poznámka:

Možnosti, které jsou specifické pro SERVICE_BROKER, najdete v části SERVICE_BROKER možnosti dále v této části. Možnosti, které jsou 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.

Podporované metody ověřování zahrnují protokol NTLM a/nebo Kerberos.

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žije jako ověřovací protokol. Výchozí hodnota , způsobí, NEGOTIATEže koncový bod použije protokol vyjednávání systému Windows zvolit 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 REQUIRED.

INVALIDNÍ

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

PODPOROVANÝ

Určuje, že data jsou zašifrována pouze v případě, že opačný koncový bod určuje buď SUPPORTED nebo REQUIRED.

POŽADOVANÝ

Určuje, že připojení k tomuto koncovému bodu musí používat šifrování. Proto musí být ENCRYPTION pro připojení k tomuto koncovému bodu nastaven jiný koncový bod buď SUPPORTED nebo REQUIRED.

Volitelně můžete pomocí argumentu ALGORITHM 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 danou 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 WITNESS 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

ENDPOINT DDL příkazy nelze provést uvnitř transakce uživatele. ENDPOINT DDL příkazy 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 základě ENDPOINT následujícího:

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

  • Vlastník koncového bodu

  • Uživatelé nebo skupiny, kterým bylo uděleno CONNECT oprávnění ke koncovému bodu

Povolení

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

Příklady

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 = 32766,
    LISTENER_IP = (10.0.75.1)
)
FOR TSQL ();

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

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 = 32766,
    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