Protokoły i punkty końcowe TDS

Gdy Aparat baz danych programu SQL Server komunikuje się z aplikacji, formatuje go komunikacji w Microsoft format komunikacji zwany strumień danych tabelarycznych pakiet (TDS).Sieci SQL Server warstwy protokołu interfejsu sieciowego (SNI), która zastępuje bibliotek netto dla SQL Server 2000 i Microsoft Data Access Components (MDAC), hermetyzuje pakiet TDS wewnątrz protokół komunikacji standardowej, takiego jak TCP/IP lub nazwanych potoków.Warstwa protokół SNI jest wspólna dla obu Aparat baz danych i SQL Server macierzystego klienta.Nie skonfigurowano bezpośrednio na warstwie protokół SNI.Zamiast tego serwera i SQL Server rodzimymi klientami są skonfigurowane do używania protokół sieciowego.Następnie, Aparat baz danych i SQL Server Native Client automatycznie użyj ustawienia odpowiedniego protokół.Serwer tworzy SQL Server obiektu o nazwie TDS endpoint dla każdego protokół sieciowego.Na serwerze, punkty końcowe TDS są instalowane przez SQL Server podczas SQL Server instalacji.

W tym temacie opisano, jak serwer tworzy i wykorzystuje TDS punkty końcowe.Aby uzyskać więcej informacji na temat konfigurowania serwera, zobacz Konfigurowanie protokołów sieciowych serwera i bibliotek netto.

Na komputerze klienckim SQL Server Native klient musi być zainstalowany i skonfigurowany do używania protokół sieci włączone na serwerze.Aby uzyskać więcej informacji o klientach, zobacz Konfigurowanie protokołów sieciowych klienta.

Włączanie protokołów serwera po instalacji

Podstawowe protokołów sieciowych systemu operacyjnego (takich jak TCP/IP) powinna już zainstalowany klient i serwerze.Protokoły sieciowe są zazwyczaj instalowane podczas instalacji systemu Windows; nie są one częścią SQL Server Instalatora.Jeśli protokół sieciowy wymagane jest niedostępny i skonfigurowane na serwerze, Aparat baz danych będzie start.Jeśli protokół sieciowy wymagane jest niedostępny i skonfigurowane na klient, biblioteka sieciowa nie będzie działać.

Ostrzeżenie

W pozostałej części tego tematu "Włączenie protokół" oznacza włączenie protokół dla SQL Server, nie dla systemu operacyjnego.

Protokoły sieciowe, niezbędne do komunikacji z SQL Server z innego komputera często nie są włączone dla SQL Server podczas instalacji.Łączenie się z klient komputera, dlatego może być konieczne włączenie TCP/IP, potoki nazwane, lub za pośrednictwem protokół.(Protokół pamięci współużytkowanej jest włączona domyślnie dla wszystkich instalacji, ale tylko służą do łączenia się z Aparat baz danych z aplikacji klient na tym samym komputerze.) Aby uzyskać informacje o sieci, które są włączone protokoły typu instalacji, zobacz Domyślna konfiguracja sieciowa SQL Server.

Aby włączyć protokoły sieciowe, użyj SQL Server Menedżer konfiguracji.Alternatywnie mogą być włączone protokoły podczas instalacji przy użyciu opcji wiersz polecenia.Aby uzyskać więcej informacji, zobacz Jak: Instalowanie programu SQL Server 2008 R2 z wiersza polecenia.

Po zainstalowaniu i skonfigurowaniu, połączenia sieciowe SQL Server może nasłuchiwać na dowolnej kombinacji protokołów sieciowych serwera jednocześnie.

Punkty końcowe TDS, definicja

A TDS endpoint is the SQL Server object that represents the communication point between SQL Server and a client.SQL Server automatically creates an endpoint for each of the four protocols supported by SQL Server.Domyślnie wszyscy użytkownicy mają dostęp do nich są włączone protokoły.Jeśli nie jest włączony protokół sieciowy, punkt końcowy nadal istnieje, ale nie mogą być używane.Dodatkowy punkt końcowy jest tworzony dla dedykowanego połączenia administracyjnego (DAC), które mogą być używane tylko przez członków sysadmin stała rola serwera.

SQL Server generuje unikatową nazwę dla każdego punktu końcowego TDS.Punkty końcowe, które są automatycznie tworzone są wyświetlane w tabela poniżej.

Cel

Nazwa punktu końcowego

Pamięci współużytkowanej

TSQL LocalMachine

Nazwane potoki

TSQL Named Pipes

TCP/IP

TSQL Default TCP

VIA

TSQL Default VIA

DAC

Dedicated Admin Connection

HTTP

HyperText Transport Protocol

Nazwane potoki i protokoły pamięci współużytkowanej może istnieć tylko jeden punkt końcowy na wystąpienie.Brak punktów końcowych można konfigurować dla tych typów protokół.TCP/IP i VIA jest domyślny punkt końcowy, ale można utworzyć dodatkowe punkty końcowe.Punkty końcowe HTTP są również tworzone przez użytkownika i nie pojawiają się w SQL Server Menedżer konfiguracji.

Ważna informacjaWażne:

Protokół VIA jest niezalecane.Ta funkcja zostanie usunięta z przyszłej wersji programu Microsoft SQL Server. Należy unikać stosowania tej funkcji w nowych projektach oraz zaplanować modyfikację aplikacji, w których obecnie jest używana ta funkcja.

Tylko właściciel i stan można zmienić na punktach końcowych systemu (przy użyciu zmiany punktu KOŃCOWEGO).Nie można wyłączyć domyślne punkty końcowe, ale można zatrzymać i uruchomić je.Nadal wykrywa zatrzymany punktu końcowego, ale odrzuca i zamyka nowych połączeń.

Ostrzeżenie

Domyślnie klienci są skonfigurowane do spróbuj wszystkie protokoły, dopóki jeden z nich działa.Jeśli protokół TCP/IP jest wyłączona, klienci nadal z następnego protokołu.Jeśli protokół TCP/IP jest włączony, ale punkt końcowy jest zatrzymana, próba połączenia jest nie odrzucona, klient nie próbuj inne protokoły, ale zatrzymany połączenia nie może być używany.W takim przypadek należy jawnie połączyć aktywnego punktu końcowego.

Dynamiczne porty TCP połączyć zwykle domyślny punkt końcowy TCP.

Ustawienia protokołu w rejestrze

Ustawienia dla punktów końcowych TDS są zapisywane w rejestrze.Użytkownicy powinni używać Transact-SQL instrukcji, aby utworzyć lub zmienić punkty końcowe i użyć SQL Server Menedżer konfiguracji, aby włączyć lub wyłączyć protokołów, które uruchamia i zatrzymuje punkty końcowe.

Podczas zmiany użytkownika protokół ustawień w rejestrze, nic się nie dzieje.Rejestr jest niezależna od metadane.

Kojarzenie połączenia użytkownika z punktem końcowym

Podczas łączenia się z Aparat baz danych, SQL Server kojarzy połączenia z określonego punktu końcowego i ocenia, czy łączące logowania przyznano uprawnienia do korzystania z punktu końcowego.Połączenia są skojarzone następujące:

  • Wspólne korzystanie połączenia pamięci TSQL LocalMachine punktu końcowego.

  • O nazwie Użyj połączenia przewodów TSQL Named Pipes punktu końcowego.

  • Zastosowanie połączenia administratora Dedicated Admin Connection punktu końcowego.

  • Domyślnie używać połączeń TCP TSQL Default TCP punktu końcowego.Jeśli tworzony jest nowy końcowego TCP (zdefiniowany przez użytkownika) dla określonego portu TCP, połączeń do tego portu TCP połączy się z tym nowy punkt końcowy.Jeśli nowy punkt końcowy TCP i TSQL jest tworzona za pomocą IP_ANY jako port, następnie połączeń TCP połączy się z tego nowego punktu końcowego.

  • Za pośrednictwem połączenia są traktowane jak połączenia TCP.

Punkty końcowe użytkownika zachowują się jak domyślne punkty końcowe.Podczas tworzenia punktu końcowego adresu IP (lub wszystkie adresy IP za pomocą IP_ANY) i określonego portu TCP udzielone uprawnienie do połączenia z punktem końcowym użytkownikom w procesie zwanym zastrzegania.Zachowują zastrzegania niezależnie od tego, czy faktycznie nasłuchuje serwer kombinację adres IP/TCP port.Połączenie adresu IP i portu TCP jest dopasowywane do punktu końcowego w następującej kolejności:

  1. Jeśli adres IP i portu TCP dokładnie odpowiada adres IP i port TCP punktu końcowego, punkt końcowy jest używany.

  2. Jeśli nie jest dokładny odpowiednik, TCP port jest sprawdzane wszystkie IP_ANY punkty końcowe, i jeśli znajduje się TCP port, służy do tego punktu końcowego.

  3. Jeśli brak portu dokładnego dopasowania, używany jest domyślny punkt końcowy TCP.

Proces skojarzenia połączenia zawsze wyniki zaznaczenie co najwyżej jeden punkt końcowy.Uprawnienie do połączenia jest zaznaczone dla tego punktu końcowego.Jeśli użytkownik nie ma uprawnień do tego punktu końcowego, proces nie wyszukiwania następnego punktu końcowego.

Przykłady: Kojarzenie połączeń użytkowników i punkty końcowe

W poniższym przykładzie pokazano, jak adres IP i portu TCP są używane do wybierz punkt końcowy.Załóżmy, że serwer jest skonfigurowany do nasłuchu na następujące adresy IP i porty TCP:

127.0.0.1:1533

251.40.20.151:1533

251.40.20.151:1433

Dalsze Przyjmijmy, ustanawia się następujące punkty końcowe TCP:

Nazwa punktu końcowego

Wartości skonfigurowanych

Loopback

LISTENER_IP = 127.0.0.1 i LISTENER_PORT = 1533

Remote

LISTENER_IP = ALL i LISTENER_PORT = 1533

TSQL Default TCP

Nie połączony z dowolnego adresu IP lub portu

Istnieją trzy możliwe połączenie możliwości:

  • Jeśli klient nawiązuje połączenie TCP 127.0.0.1:1533, byłoby końcowym skojarzony z sesja Loopback punktu końcowego, ponieważ nie ma dokładnego odpowiednika adresu IP i portu TCP Loopback punktu końcowego.

  • Jeśli klient nawiązuje połączenie TCP 251.40.20.151:1533, nie ma dokładnego odpowiednika adresu IP i portu TCP do punktu końcowego, ale Remote jest dostępny dla połączenia, ponieważ Remote nasłuchuje na dowolny adres IP i port 1533.Jeśli łączące logowania nie ma uprawnień do Remote punktu końcowego, proces kończy się niepowodzeniem.Nie próbuje połączyć się z innych możliwych punktów końcowych, takich jak TSQL Default TCP, do którego logowania może mieć uprawnienia.

  • Jeśli klient nawiązuje połączenie TCP 251.40.20.151:1433, brak dokładnego dopasowania adresu IP i portu TCP do punktu końcowego i Brak dopasowania dla portu TCP 1533 z każdym adresem IP, ale TSQL Default TCP jest dostępny dla połączenia, ponieważ TSQL Default TCP nasłuchuje na dowolny adres IP i wszelkie podłączanego

Uaktualnienia lub instalacji

Domyślnie wszyscy użytkownicy mają dostęp do punktów końcowych TDS (z wyjątkiem końcowego punktu połączenia dedykowane administratora).Ponieważ te punkty końcowe są tworzona wewnętrznie przez serwer, mają one bez właściciela i nie można skojarzyć je z określonego konta.

Zarządzanie punktami końcowymi za pomocą języka Transact-SQL

Punkty końcowe są tworzone i zarządzane za pomocą Transact-SQL.Są tworzone i usunięte z instrukcje tworzenia punktu KOŃCOWEGO i UPUŚĆ punktu KOŃCOWEGO.Istnieją również sprawozdania z kontroli, zmieniać i przejąć na własność punkty końcowe.

Aby połączyć się z wystąpienie SQL Server za pomocą Transact-SQL punkty końcowe, użytkownicy muszą mieć uprawnienie POŁĄCZ do punktu końcowego i globalne uprawnienia na SQL Server do dziennika caliAby połączyć domyślne punkty końcowe niejawnie uprawnienia dla użytkowników podczas tworzenia logowania.Dostęp do punktów końcowych jest zarządzany z dotacji | ODMÓW | PODŁĄCZ REVOKE KOŃCOWEGO.

Po utworzeniu nowego punktu końcowego TCP SQL Server automatycznie odwołuje wszystkie istniejące uprawnienia na TSQL Default TCP punktu końcowego.Na przykład sposób tworzenia nowego punktu końcowego TCP, zobacz Jak Konfigurowanie aparatu bazy danych do nasłuchiwania wielu portów TCP.

  • Aby ograniczyć dostęp do punktu końcowego, administrator może odmówić uprawnienia do grupy Wszyscy (za pomocą instrukcja odmowa połączenia) i następnie udziel uprawnienia do określonych osób lub role (za pomocą instrukcja udzielić połączenia).

  • Aby przywrócić pierwotny stan uprawnienia, PRZYZNAĆ uprawnienie POŁĄCZ grupy publiczne.

  • Aby zapewnić punkt końcowy dla określonej aplikacji, ODMAWIANIE połączenia uprawnienia do wszystkich użytkowników z wyjątkiem użytkowników dla tej aplikacji.

Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

Pozwolenie na stosowanie punkt końcowy jest skojarzony z nazwą punktu końcowego.Jeśli zmieni nazwę punktu końcowego, ograniczenia zabezpieczeń (na przykład odmowa połączenia instrukcji) będą już prawidłowo stosowane.Nazwa punktu końcowego zostanie zmieniona, gdy port.Jeśli SQL Server nasłuchuje na dynamiczne porty portu można zmienić, zmieniając nazwę punktu końcowego i upuszczając uprawnienia skojarzonego punktu końcowego.Aby uniknąć tego zagrożenia bezpieczeństwa, nie zestaw uprawnienia niestandardowe na punkty końcowe skojarzone z portów dynamicznych i nie zmieniać kolejność, w którym punkt końcowy TCP/IP występuje w rejestrze.

Aby uzyskać więcej informacji dotyczących sposobu zestaw zabezpieczenia dla punktów końcowych, zobacz PRZYZNAĆ uprawnienia punktu końcowego (Transact-SQL).