Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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