Udostępnij za pomocą


CREATE ENDPOINT (Transact-SQL)

Dotyczy:SQL Server

Tworzy punkty końcowe i definiuje ich właściwości, w tym metody dostępne dla aplikacji klienckich. Aby uzyskać powiązane informacje o uprawnieniach, zobacz GRANT Endpoint Permissions (Transact-SQL).

Składnia tworzenia punktu końcowego może być logicznie podzielona na dwie części:

  • Pierwsza część rozpoczyna się od as i kończy się przed klauzulą FOR.

    W tej części podajesz informacje specyficzne dla protokołu transportowego (TCP) i ustawiasz numer portu nasłuchiwania dla punktu końcowego, a także metodę uwierzytelniania punktu końcowego i/lub listę adresów IP (jeśli istnieje), które mają być ograniczone do uzyskiwania dostępu do punktu końcowego.

  • Druga część rozpoczyna się od klauzuli FOR.

    W tej części zdefiniujesz ładunek obsługiwany w punkcie końcowym. Ładunek może być jednym z kilku obsługiwanych typów: Transact-SQL, broker usług, dublowanie bazy danych. W tej części uwzględniasz również informacje specyficzne dla języka.

Uwaga / Notatka

W programie SQL Server 2012 (11.x) usunięto natywne usługi sieci Web XML (punkty końcowe PROTOKOŁU SOAP/HTTP).

Transact-SQL konwencje składni

Składnia

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

Przypisana nazwa punktu końcowego, który tworzysz. Użyj podczas aktualizowania lub usuwania punktu końcowego.

Logowanie AUTORYZACJI

Określa prawidłowy identyfikator logowania programu SQL Server lub systemu Windows, który ma przypisaną własność nowo utworzonego obiektu punktu końcowego. Jeśli autoryzacja nie jest określona, domyślnie obiekt wywołujący staje się właścicielem nowo utworzonego obiektu.

Aby przypisać własność przez określenie autoryzacji, obiekt wywołujący musi mieć uprawnienie IMPERSONATE w określonym logowaniu.

Opcja AUTORYZACJA nie jest dostępna w elemecie ALTER ENDPOINT. Własność można przypisać tylko po utworzeniu punktu końcowego.

Aby ponownie przypisać własność, zobacz DROP ENDPOINT (Transact-SQL), a następnie wróć do tego artykułu, aby ponownie utworzyć punkt końcowy.

STATE = { STARTED | ZATRZYMANO | WYŁĄCZONE }

Stan punktu końcowego po jego utworzeniu. Jeśli stan nie zostanie określony podczas tworzenia punktu końcowego, zatrzymany jest wartością domyślną.

ROZPOCZĄŁ

Punkt końcowy jest uruchamiany i aktywnie nasłuchuje połączeń.

NIEPEŁNOSPRAWNY

Punkt końcowy jest wyłączony. W tym stanie serwer nasłuchuje żądań portów, ale zwraca błędy do klientów.

ZATRZYMANY

Punkt końcowy jest zatrzymany. W tym stanie serwer nie nasłuchuje portu punktu końcowego ani nie odpowiada na wszelkie próby użycia punktu końcowego.

Aby zmienić stan, użyj polecenia ALTER ENDPOINT (Transact-SQL).

AS { TCP }

Określa protokół transportu do użycia.

FOR { TSQL | SERVICE_BROKER | DATABASE_MIRRORING }

Określa typ ładunku.

Obecnie nie ma argumentów specyficznych dla języka Transact-SQL do przekazania parametru <language_specific_arguments> .

Opcja protokołu TCP

Następujące argumenty dotyczą tylko opcji protokołu TCP.

LISTENER_PORT = listenerPort

Określa numer portu nasłuchuje połączeń przez protokół TCP/IP brokera usług. Zgodnie z konwencją jest używany numer 5022, ale dowolna liczba z zakresu od 1024 do 32767 jest prawidłowa.

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

Określa adres IP, na który będzie nasłuchiwać punkt końcowy. Wartość domyślna to ALL. Oznacza to, że odbiornik zaakceptuje połączenie na dowolnym prawidłowym adresie IP.

Jeśli skonfigurujesz dublowanie bazy danych przy użyciu adresu IP zamiast w pełni kwalifikowanej nazwy domeny (ALTER DATABASE SET PARTNER = partner_IP_address lub ALTER DATABASE SET WITNESS = witness_IP_address), musisz określić LISTENER_IP =IP_address zamiast LISTENER_IP=ALL podczas tworzenia punktów końcowych dublowania.

Opcje języka T-SQL

SZYFROWANIE = { WYNEGOCJOWANE | STRICT }

Dotyczy: SQL Server 2022 (16.x) i nowsze

Określa sposób użycia szyfrowania w procesie. Wartość domyślna jest NEGOCJOWANA ze względów zgodności.

NEGOCJOWANE

Sposób szyfrowania połączenia jest negocjowany między serwerem a klientem. Rzeczywiste nawiązane połączenie może szyfrować:

  • Tylko komunikat LOGIN7.
  • Wszystkie komunikaty z wyjątkiem PRELOGIN.
  • Wszystkie komunikaty.

SUROWY

Określa, że wszystkie komunikaty wysyłane do tego punktu końcowego muszą być zaszyfrowane, a certyfikat rezerwowy nie będzie prezentowany przez punkt końcowy. Jeśli nagłówek TLS nie jest pierwszym komunikatem, serwer przerywa połączenie.

Opcje SERVICE_BROKER i DATABASE_MIRRORING

Następujące argumenty UWIERZYTELNIANIA i SZYFROWANIA są typowe dla opcji SERVICE_BROKER i DATABASE_MIRRORING.

Uwaga / Notatka

Aby uzyskać opcje specyficzne dla SERVICE_BROKER, zobacz "opcje SERVICE_BROKER", w dalszej części tej sekcji. Aby uzyskać opcje specyficzne dla DATABASE_MIRRORING, zobacz "DATABASE_MIRRORING Opcje", w dalszej części tej sekcji.

UWIERZYTELNIANIE = <authentication_options>

Określa wymagania dotyczące uwierzytelniania TCP/IP dla połączeń dla tego punktu końcowego. Domyślna wartość to WINDOWS.

Obsługiwane metody uwierzytelniania obejmują protokół NTLM i protokół Kerberos lub oba te metody.

Ważne

Wszystkie połączenia dublowania w wystąpieniu serwera używają pojedynczego punktu końcowego dublowania bazy danych. Próba utworzenia dodatkowego punktu końcowego dublowania bazy danych zakończy się niepowodzeniem.

WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]

Określa, że punkt końcowy ma nawiązywać połączenie przy użyciu protokołu uwierzytelniania systemu Windows w celu uwierzytelniania punktów końcowych. Jest to opcja domyślna.

Jeśli określisz metodę autoryzacji (NTLM lub KERBEROS), ta metoda jest zawsze używana jako protokół uwierzytelniania. Wartość domyślna NEGOTIATE powoduje, że punkt końcowy używa protokołu negocjacji systemu Windows do wybrania protokołu NTLM lub Kerberos.

certificate_name CERTYFIKATU

Określa, że punkt końcowy ma uwierzytelniać połączenie przy użyciu certyfikatu określonego przez certificate_name w celu ustanowienia tożsamości na potrzeby autoryzacji. Daleko punkt końcowy musi mieć certyfikat z kluczem publicznym pasującym do klucza prywatnego określonego certyfikatu.

WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ] CERTIFICATE_NAME CERTYFIKATU

Określa, że punkt końcowy ma próbować nawiązać połączenie przy użyciu uwierzytelniania systemu Windows, a jeśli próba zakończy się niepowodzeniem, spróbuj użyć określonego certyfikatu.

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

Określa, że punkt końcowy ma próbować nawiązać połączenie przy użyciu określonego certyfikatu, a jeśli próba zakończy się niepowodzeniem, spróbuj użyć uwierzytelniania systemu Windows.

SZYFROWANIE = { WYŁĄCZONE | OBSŁUGIWANE | WYMAGANE } [ ALGORYTM { AES | RC4 | AES RC4 | RC4 AES } ]

Określa, czy szyfrowanie jest używane w procesie. Wartość domyślna to WYMAGANE.

NIEPEŁNOSPRAWNY

Określa, że dane wysyłane za pośrednictwem połączenia nie są szyfrowane.

OBSŁUGIWANE

Określa, że dane są szyfrowane tylko wtedy, gdy przeciwny punkt końcowy określa wartość OBSŁUGIWANE lub WYMAGANE.

WYMAGANE

Określa, że połączenia z tym punktem końcowym muszą używać szyfrowania. W związku z tym, aby nawiązać połączenie z tym punktem końcowym, inny punkt końcowy musi mieć wartość ENCRYPTION ustawioną na WARTOŚĆ SUPPORTED (OBSŁUGIWANE) lub REQUIRED (WYMAGANE).

Opcjonalnie możesz użyć argumentu ALGORITHM, aby określić formę szyfrowania używanego przez punkt końcowy w następujący sposób:

AES

Określa, że punkt końcowy musi używać algorytmu AES. Jest to wartość domyślna w programie SQL Server 2016 (13.x) i nowszych wersjach.

RC4

Określa, że punkt końcowy musi używać algorytmu RC4. Jest to ustawienie domyślne za pomocą programu SQL Server 2014 (12.x).

Uwaga / Notatka

Algorytm RC4 jest obsługiwany tylko w przypadku zgodności z poprzednimi wersjami. Nowy materiał można szyfrować tylko przy użyciu wersji RC4 lub RC4_128, gdy baza danych jest zgodna z poziomem zgodności 90 lub 100. (Niezalecane). Zamiast tego użyj nowszego algorytmu, takiego jak jeden z algorytmów AES. W programie SQL Server 2012 (11.x) i nowszych wersjach można odszyfrować materiał zaszyfrowany przy użyciu wersji RC4 lub RC4_128 w dowolnym poziomie zgodności.

AES RC4

Określa, że dwa punkty końcowe będą negocjowane dla algorytmu szyfrowania z tym punktem końcowym dając preferencje algorytmowi AES.

RC4 AES

Określa, że dwa punkty końcowe będą negocjowane dla algorytmu szyfrowania z tym punktem końcowym dając preferencje algorytmowi RC4.

Uwaga / Notatka

Algorytm RC4 jest przestarzały. Ta funkcja zostanie usunięta w przyszłej wersji programu SQL Server. Unikaj używania tej funkcji w nowych pracach programistycznych i zaplanuj modyfikowanie aplikacji, które obecnie korzystają z tej funkcji. Zalecamy używanie AES.

Jeśli oba punkty końcowe określą oba algorytmy, ale w różnych kolejności, punkt końcowy akceptujący połączenie wygrywa.

Opcje SERVICE_BROKER

Następujące argumenty są specyficzne dla opcji SERVICE_BROKER.

MESSAGE_FORWARDING = { ENABLED | WYŁĄCZONE }

Określa, czy komunikaty odebrane przez ten punkt końcowy, które są przeznaczone dla usług znajdujących się gdzie indziej, zostaną przekazane.

WŁĄCZONE

Przekazuj komunikaty, jeśli adres przekazywania jest dostępny.

NIEPEŁNOSPRAWNY

Odrzuca komunikaty dla usług znajdujących się gdzie indziej. Jest to opcja domyślna.

MESSAGE_FORWARD_SIZE = forward_size

Określa maksymalną ilość miejsca w megabajtach do przydzielenia dla punktu końcowego do użycia podczas przechowywania komunikatów, które mają być przekazywane.

Opcje DATABASE_MIRRORING

Poniższy argument jest specyficzny dla opcji DATABASE_MIRRORING.

ROLA = { MONITOR | PARTNER | WSZYSTKO }

Określa rolę dublowania bazy danych lub role obsługiwane przez punkt końcowy.

ŚWIADEK

Umożliwia punktowi końcowemu wykonywanie roli monitora w procesie dublowania.

Uwaga / Notatka

W przypadku programu SQL Server 2005 Express jest jedyną dostępną opcją.

WSPÓLNIK

Umożliwia punktowi końcowemu wykonywanie roli partnera w procesie dublowania.

ALL

Umożliwia punktowi końcowemu wykonywanie roli zarówno monitora, jak i partnera w procesie dublowania.

Aby uzyskać więcej informacji na temat tych ról, zobacz Dublowanie bazy danych (SQL Server).

Uwaga / Notatka

Brak portu domyślnego dla DATABASE_MIRRORING.

Uwagi

Instrukcje DDL punktu końcowego nie mogą być wykonywane wewnątrz transakcji użytkownika. Instrukcje DDL punktu końcowego nie kończą się niepowodzeniem, nawet jeśli aktywna transakcja na poziomie izolacji migawki korzysta ze zmienionego punktu końcowego.

Żądania można wykonywać względem punktu końcowego, wykonując następujące czynności:

  • Członkowie stałej roli serwera sysadmin

  • Właściciel punktu końcowego

  • Użytkownicy lub grupy, którym udzielono uprawnień CONNECT w punkcie końcowym

Permissions

Wymaga uprawnienia CREATE ENDPOINT lub członkostwa w stałej roli serwera sysadmin . Aby uzyskać więcej informacji, zobacz GRANT Endpoint Permissions (Transact-SQL).

Example

Tworzenie punktu końcowego dublowania bazy danych

Poniższy przykład tworzy punkt końcowy dublowania bazy danych. Punkt końcowy używa numeru 7022portu , chociaż dowolny dostępny numer portu działa. Punkt końcowy jest skonfigurowany do używania uwierzytelniania systemu Windows tylko przy użyciu protokołu Kerberos. Opcja ENCRYPTION jest skonfigurowana do wartości niezgodnej z definicją SUPPORTED w celu obsługi zaszyfrowanych lub niezaszyfrowanych danych. Punkt końcowy jest konfigurowany pod kątem obsługi ról partnera i monitora.

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

Tworzenie nowego punktu końcowego wskazującego określony adres IPv4 i port

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;

Tworzenie nowego punktu końcowego wskazującego określony adres IPv6 i port

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;

Tworzenie nowego punktu końcowego z rygorystycznym szyfrowaniem

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