Delen via


CREATE ENDPOINT (Transact-SQL)

Van toepassing op:SQL Server

Hiermee maakt u eindpunten en definieert u hun eigenschappen, inclusief de methoden die beschikbaar zijn voor clienttoepassingen. Zie GRANT Endpoint Permissions (Transact-SQL) voor gerelateerde machtigingen.

De syntaxis voor CREATE ENDPOINT kan logisch worden onderverdeeld in twee delen:

  • Het eerste deel begint met AS en eindigt vóór de FOR-component.

    In dit deel geeft u informatie op die specifiek is voor het transportprotocol (TCP) en stelt u een luisterend poortnummer in voor het eindpunt, evenals de methode voor eindpuntverificatie en/of een lijst met IP-adressen (indien van toepassing) die u wilt beperken tot het eindpunt.

  • Het tweede deel begint met de FOR-component.

    In dit deel definieert u de nettolading die wordt ondersteund op het eindpunt. De nettolading kan een van de verschillende ondersteunde typen zijn: Transact-SQL, service broker, databasespiegeling. In dit deel neemt u ook taalspecifieke informatie op.

Opmerking

Systeemeigen XML-webservices (SOAP/HTTP-eindpunten) zijn verwijderd in SQL Server 2012 (11.x).

Transact-SQL syntaxis-conventies

Syntaxis

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

De toegewezen naam voor het eindpunt dat u maakt. Gebruik dit bij het bijwerken of verwijderen van het eindpunt.

AUTORISATIEaanmelding

Hiermee geeft u een geldige SQL Server- of Windows-aanmelding op waaraan het zojuist gemaakte eindpuntobject is toegewezen. Als AUTORISATIE niet is opgegeven, wordt de aanroeper standaard eigenaar van het zojuist gemaakte object.

Als u het eigendom wilt toewijzen door AUTORISATIE op te geven, moet de aanroeper de machtiging IMITATE hebben voor de opgegeven aanmelding.

De optie AUTORISATIE is niet beschikbaar in ALTER ENDPOINT. Eigendom kan alleen worden toegewezen wanneer het eindpunt wordt gemaakt.

Als u het eigendom opnieuw wilt toewijzen, raadpleegt u DROP ENDPOINT (Transact-SQL) en gaat u terug naar dit artikel om het eindpunt opnieuw te maken.

STATE = { GESTART | GESTOPT | UITGESCHAKELD }

De status van het eindpunt wanneer het wordt gemaakt. Als de status niet is opgegeven wanneer het eindpunt wordt gemaakt, is STOPPED de standaardwaarde.

BEGON

Het eindpunt wordt gestart en luistert actief naar verbindingen.

INVALIDE

Eindpunt is uitgeschakeld. In deze status luistert de server naar poortaanvragen, maar retourneert deze fouten naar clients.

GESTOPT

Eindpunt is gestopt. In deze status luistert de server niet naar de eindpuntpoort of reageert de server op pogingen om het eindpunt te gebruiken.

Als u de status wilt wijzigen, gebruikt u ALTER ENDPOINT (Transact-SQL).

AS { TCP }

Hiermee geeft u het transportprotocol dat moet worden gebruikt.

FOR { TSQL | SERVICE_BROKER | DATABASE_MIRRORING }

Hiermee geeft u het nettoladingstype op.

Er zijn momenteel geen Transact-SQL taalspecifieke argumenten om de <language_specific_arguments> parameter door te geven.

TCP-protocoloptie

De volgende argumenten zijn alleen van toepassing op de tcp-protocoloptie.

LISTENER_PORT = listenerPort

Hiermee geeft u het poortnummer op dat is geluisterd naar verbindingen door het TCP/IP-protocol van de servicebroker. Standaard wordt 5022 gebruikt, maar een willekeurig getal tussen 1024 en 32767 is geldig.

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

Hiermee geeft u het IP-adres op waarop het eindpunt luistert. De standaardwaarde is ALL. Dit betekent dat de listener een verbinding op elk geldig IP-adres accepteert.

Als u databasespiegeling configureert met een IP-adres in plaats van een volledig gekwalificeerde domeinnaam (ALTER DATABASE SET PARTNER = partner_IP_address of ALTER DATABASE SET WITNESS = witness_IP_address), moet u opgeven LISTENER_IP =IP_address in plaats van LISTENER_IP=ALL wanneer u spiegelingseindpunten maakt.

T-SQL-opties

VERSLEUTELING = { ONDERHANDELD | STRICT }

Van toepassing op: SQL Server 2022 (16.x) en hoger

Hiermee geeft u op hoe versleuteling wordt gebruikt in het proces. De standaardwaarde is ONDERHANDELD om compatibiliteitsredenen.

ONDERHANDELD

De manier waarop de verbinding wordt versleuteld, wordt onderhandeld tussen de server en de client. De werkelijke verbinding die tot stand is gebracht, kan het volgende versleutelen:

  • Alleen LOGIN7-bericht.
  • Alle berichten behalve PRELOGIN.
  • Alle berichten.

STRENG

Hiermee geeft u op dat alle berichten die naar dit eindpunt worden verzonden, moeten worden versleuteld en dat het terugvalcertificaat niet wordt weergegeven door het eindpunt. Als de TLS-header niet het eerste bericht is, wordt de verbinding verbroken door de server.

Opties voor SERVICE_BROKER en DATABASE_MIRRORING

De volgende argumenten VOOR VERIFICATIE en VERSLEUTELING zijn gebruikelijk voor de opties SERVICE_BROKER en DATABASE_MIRRORING.

Opmerking

Zie 'SERVICE_BROKER Opties' verderop in deze sectie voor opties die specifiek zijn voor SERVICE_BROKER. Zie 'DATABASE_MIRRORING Opties' verderop in deze sectie voor opties die specifiek zijn voor DATABASE_MIRRORING.

VERIFICATIE = <authentication_options>

Hiermee geeft u de TCP/IP-verificatievereisten voor verbindingen voor dit eindpunt op. De standaardwaarde is WINDOWS.

De ondersteunde verificatiemethoden omvatten NTLM en kerberos of beide.

Belangrijk

Alle spiegelingsverbindingen op een serverexemplaren maken gebruik van één eindpunt voor databasespiegeling. Pogingen om een extra eindpunt voor databasespiegeling te maken, mislukken.

WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]

Hiermee geeft u op dat het eindpunt verbinding moet maken met het Windows-verificatieprotocol om de eindpunten te verifiëren. Dit is de standaardwaarde.

Als u een autorisatiemethode (NTLM of KERBEROS) opgeeft, wordt die methode altijd gebruikt als verificatieprotocol. De standaardwaarde, NEGOTIATE, zorgt ervoor dat het eindpunt het Windows-onderhandelingsprotocol gebruikt om NTLM of Kerberos te kiezen.

CERTIFICATE certificate_name

Hiermee geeft u op dat het eindpunt de verbinding moet verifiëren met behulp van het certificaat dat is opgegeven door certificate_name om identiteit voor autorisatie tot stand te brengen. Het eindpunt moet een certificaat hebben met de openbare sleutel die overeenkomt met de persoonlijke sleutel van het opgegeven certificaat.

WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ] CERTIFICAAT certificate_name

Hiermee geeft u op dat eindpunt moet worden geprobeerd verbinding te maken met behulp van Windows-verificatie en, als die poging mislukt, vervolgens probeert u het opgegeven certificaat te gebruiken.

CERTIFICATE certificate_name WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]

Hiermee geeft u op dat eindpunt moet worden geprobeerd verbinding te maken met behulp van het opgegeven certificaat en, als die poging mislukt, om vervolgens Windows-verificatie te proberen.

VERSLEUTELING = { UITGESCHAKELD | ONDERSTEUND | REQUIRED } [ ALGORITME { AES | RC4 | AES RC4 | RC4 AES } ]

Hiermee geeft u op of versleuteling wordt gebruikt in het proces. De standaardwaarde is VEREIST.

INVALIDE

Hiermee geeft u op dat gegevens die via een verbinding worden verzonden, niet worden versleuteld.

ONDERSTEUND

Hiermee geeft u op dat de gegevens alleen worden versleuteld als het tegenovergestelde eindpunt ONDERSTEUND of VEREIST opgeeft.

VEREIST

Hiermee geeft u op dat verbindingen met dit eindpunt versleuteling moeten gebruiken. Als u verbinding wilt maken met dit eindpunt, moet voor een ander eindpunt VERSLEUTELING zijn ingesteld op ONDERSTEUND of VEREIST.

U kunt desgewenst het argument ALGORITME gebruiken om de vorm van versleuteling op te geven die door het eindpunt wordt gebruikt:

AES

Hiermee geeft u op dat het eindpunt het AES-algoritme moet gebruiken. Dit is de standaardinstelling in SQL Server 2016 (13.x) en hoger.

RC4

Hiermee geeft u op dat het eindpunt het RC4-algoritme moet gebruiken. Dit is de standaardinstelling via SQL Server 2014 (12.x).

Opmerking

Het RC4-algoritme wordt alleen ondersteund voor achterwaartse compatibiliteit. Nieuw materiaal kan alleen worden versleuteld met RC4 of RC4_128 wanneer de database compatibiliteitsniveau 90 of 100 heeft. (Niet aanbevolen.) Gebruik in plaats daarvan een nieuwer algoritme, zoals een van de AES-algoritmen. In SQL Server 2012 (11.x) en latere versies kan materiaal dat is versleuteld met RC4 of RC4_128 worden ontsleuteld in elk compatibiliteitsniveau.

AES RC4

Hiermee geeft u op dat de twee eindpunten met dit eindpunt onderhandelen over een versleutelingsalgoritmen die voorkeur geven aan het AES-algoritme.

RC4 AES

Hiermee geeft u op dat de twee eindpunten met dit eindpunt onderhandelen over een versleutelingsalgoritmen die voorkeur geven aan het RC4-algoritme.

Opmerking

Het RC4-algoritme is afgeschaft. Deze functie wordt verwijderd in een toekomstige versie van SQL Server. Vermijd het gebruik van deze functie in nieuwe ontwikkelwerkzaamheden en plan om toepassingen te wijzigen die momenteel gebruikmaken van deze functie. U wordt aangeraden AES te gebruiken.

Als beide eindpunten beide algoritmen maar in verschillende orders opgeven, wint het eindpunt dat de verbinding accepteert.

opties voor SERVICE_BROKER

De volgende argumenten zijn specifiek voor de optie SERVICE_BROKER.

MESSAGE_FORWARDING = { INGESCHAKELD | UITGESCHAKELD }

Bepaalt of berichten die door dit eindpunt worden ontvangen voor services die zich elders bevinden, worden doorgestuurd.

INGESCHAKELD

Berichten doorsturen als er een doorstuuradres beschikbaar is.

INVALIDE

Berichten voor services die zich elders bevinden, worden verwijderd. Dit is de standaardwaarde.

MESSAGE_FORWARD_SIZE = forward_size

Hiermee geeft u de maximale hoeveelheid opslagruimte in megabytes op die moet worden toegewezen voor het eindpunt dat moet worden gebruikt bij het opslaan van berichten die moeten worden doorgestuurd.

opties voor DATABASE_MIRRORING

Het volgende argument is specifiek voor de optie DATABASE_MIRRORING.

ROLE = { WITNESS | PARTNER | ALL }

Hiermee geeft u de databasespiegelingsrol of -rollen op die door het eindpunt worden ondersteund.

GETUIGE

Hiermee kan het eindpunt worden uitgevoerd in de rol van een witness in het spiegelingsproces.

Opmerking

Voor SQL Server 2005 Express-editie is WITNESS de enige optie die beschikbaar is.

PARTNER

Hiermee kan het eindpunt worden uitgevoerd in de rol van een partner in het spiegelingsproces.

ALL

Hiermee kan het eindpunt worden uitgevoerd in de rol van zowel een witness als een partner in het spiegelingsproces.

Zie Databasespiegeling (SQL Server) voor meer informatie over deze rollen.

Opmerking

Er is geen standaardpoort voor DATABASE_MIRRORING.

Opmerkingen

ENDPOINT DDL-instructies kunnen niet worden uitgevoerd binnen een gebruikerstransactie. ENDPOINT DDL-instructies mislukken niet, zelfs niet als een actieve transactie op isolatieniveau voor momentopnamen het eindpunt gebruikt dat wordt gewijzigd.

Aanvragen kunnen als volgt worden uitgevoerd op een EINDPUNT:

  • Leden van de vaste serverrol sysadmin

  • De eigenaar van het eindpunt

  • Gebruikers of groepen waaraan CONNECT-machtigingen zijn verleend voor het eindpunt

Permissions

Vereist de machtiging CREATE ENDPOINT of lidmaatschap van de vaste serverfunctie sysadmin . Zie GRANT Endpoint Permissions (Transact-SQL)voor meer informatie.

Example

Een eindpunt voor databasespiegeling maken

In het volgende voorbeeld wordt een eindpunt voor databasespiegeling gemaakt. Het eindpunt gebruikt poortnummer 7022, hoewel elk beschikbaar poortnummer zou werken. Het eindpunt is geconfigureerd voor het gebruik van Windows-verificatie met alleen Kerberos. De ENCRYPTION optie is geconfigureerd voor de niet-standaardwaarde van het ondersteunen van SUPPORTED versleutelde of niet-versleutelde gegevens. Het eindpunt wordt geconfigureerd ter ondersteuning van zowel de partner- als witness-rollen.

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

Een nieuw eindpunt maken dat verwijst naar een specifiek IPv4-adres en een specifieke poort

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;

Een nieuw eindpunt maken dat verwijst naar een specifiek IPv6-adres en een specifieke poort

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;

Een nieuw eindpunt maken met strikte versleuteling

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