Network Protocols and TDS Endpoints

Gdy SQL Server Database Engine komunikuje się z aplikacją, formatuje je komunikacji w Microsoft format komunikacji zwany strumień danych tabelarycznych Pakiet (TDS).W sieci SQL Server Sieci interfejs (SNI) protokołu warstwy, która zastępuje znane z biblioteki sieciowej dla SQL Server 2000 i Microsoft Dane programu Access Components (MDAC), hermetyzuje pakiet TDS wewnątrz protokół komunikacji standardowej, takich jak TCP/IP lub nazwanych potoków. Warstwa protokół SNI jest wspólne dla obu Database Engine i SQL Server Macierzysta klient. Nie skonfigurowano bezpośrednio SNI warstw protokół.Zamiast tego serwera i SQL Server Macierzysta klient są skonfigurowane do korzystania z protokół sieciowego. Następnie, Database Engine i SQL Server Macierzysta klient automatycznie za pomocą ustawień odpowiedniego protokół. Serwer tworzy SQL Server obiekt o nazwie Punkt końcowy TDS dla każdego protokół sieciowego.Na serwerze instalowane przez punkty końcowe TDS SQL Server Podczas SQL Server Instalacja.

W tym temacie opisano, w jaki sposób serwer tworzy i wykorzystuje TDS punkty końcowe.Aby uzyskać więcej informacji na temat konfigurowania serwera zobacz Configuring Server Network Protocols and Net-Libraries.

Na komputerze klienckim SQL Server Macierzysta klient musi być zainstalowany i skonfigurowany do korzystania z protokół sieciowego włączone na serwerze. Aby uzyskać więcej informacji o klientach zobacz Configuring Client Network Protocols.

Włączanie protokołów serwera po instalacji

Podstawowe protokoły sieciowe systemu operacyjnego (takich jak TCP/IP) powinien już być zainstalowany klient i serwerze.Protokoły sieciowe są zazwyczaj instalowane podczas instalacji systemu Windows; nie są one częścią SQL Server ustawienia. Jeśli wymagany protokół sieciowy nie jest dostępny i skonfigurowane na serwerze Database Engine Nie można uruchomić. Jeśli wymagany protokół nie jest dostępny i skonfigurowane na klient, biblioteki sieciowej nie będzie działać.

Uwaga

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

Niezbędne do komunikacji z protokołów sieciowych SQL Server z innego komputera często nie są włączone dla SQL Server Podczas instalacji. Aby połączyć się z klient komputera, dlatego może być konieczne włączenie TCP/IP, nazwanych potoków, lub VIA protokół.(Protokół pamięci współużytkowanej jest włączona domyślnie dla wszystkich instalacji, ale można używać tylko do łączenia się z Database Engine z aplikacji klienckich na tym samym komputerze.) Aby uzyskać informacje o tym, które są włączone protokoły sieciowe typu instalacji zobacz Default SQL Server Network Configuration.

Aby włączyć protokoły sieciowe, należy użyć SQL Server Menedżer konfiguracja. Można także protokołów mogą być włączone podczas instalacji, za pomocą opcji wiersz polecenia.Aby uzyskać więcej informacji zobaczHow to: Install SQL Server 2008 from the Command Prompt.

Po sieci są zainstalowane i skonfigurowane, połączenia SQL Server może nasłuchiwać jednocześnie na dowolnej kombinacji protokołów sieciowych serwera.

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 przy włączonych protokołów.Jeśli protokół sieciowy nie jest włączony, punkt końcowy nadal istnieje, ale nie mogą być używane.Punkt końcowy dodatkowych jest tworzony dla połączenia dedykowane administratora (DAC), które mogą być używane tylko przez członków sysadmin ustalić roli serwera.

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

Cel

Nazwa punktu końcowego

Pamięci współużytkowanej

LocalMachine TSQL

Nazwane potoki

TSQL nazwanych potoków

TCP/IP

Domyślne TSQL TCP

ZA POMOCĄ

Domyślne TSQL VIA

DAC

Dedykowanego połączenia administracyjnego

HTTP

Protokół transportowy hipertekstu

Dla potoków nazwanych i protokołów 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ół.Dla protokołu TCP/IP i VIA jest punktem końcowym domyślne, ale można utworzyć dodatkowe punkty końcowe.Punkty końcowe HTTP są również utworzone przez użytkownika i nie są wyświetlane w SQL Server Menedżer konfiguracja.

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

Uwaga

Domyślnie klienci są tak skonfigurowani, aby spróbować wszystkie protokoły, dopóki jeden z nich działa.Jeśli protokół TCP/IP jest wyłączona, klienci nadal przy następnym protokołu.Jeśli protokół TCP/IP jest włączony, ale punkt końcowy zostanie zatrzymana, próba połączenia jest nie odrzucona, więc klient nie podejmował inne protokoły, lecz nie mogą być używane zatrzymanie połączenia.W takim przypadek należy jawnie połączyć aktywnego punktu końcowego.

Dynamiczne porty TCP zazwyczaj połączyć się z domyślnego punktu końcowego TCP.

Protokół ustawień w rejestrze

Ustawienia dla punktów końcowych TDS są zapisywane w rejestrze.Użytkownicy powinni używać Transact-SQL instrukcje, aby utworzyć lub zmienić punkty końcowe i używać SQL Server Menedżer konfiguracja, 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 Database Engine, SQL Server Kojarzy połączenia z określonego punktu końcowego, a wartość czy łączące logowania zostało udzielone uprawnienie do korzystania z punktem końcowym. Połączenia są powiązane w następujący sposób:

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

  • O nazwie rury używany TSQL nazwanych potoków punktu końcowego.

  • Administrator używany dedykowany Dedykowanego połączenia administracyjnego punktu końcowego.

  • Domyślnie korzystają z połączeń TCP Domyślne TSQL TCP punktu końcowego.Jeśli tworzony jest nowy (zdefiniowane przez użytkownika) punkt TCP końcowy 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/TSQL jest tworzona za pomocą IP_ANY jako portu, następnie połączeń TCP połączy się z tym nowy punkt końcowy.

  • Kontroler VIA połączenia są traktowane w taki sam sposób, jak istniejące połączenia TCP.

Zdefiniowane przez użytkownika punktów końcowych działają w taki sam sposób, jak domyślne punkty końcowe.Podczas tworzenia punktu końcowego adresu IP (lub wszystkie adresy IP za pomocą IP_ANY) i przez określony port TCP dla użytkowników w procesie nazywanym udzielono uprawnienia do łączenia się z punktem końcowymzastrzegania.Zachowują zastrzegania niezależnie od tego, niezależnie od tego, czy rzeczywiście nasłuchuje serwer na kombinację portu TCP/adres IP.Połączenie z adresu IP i portu TCP są dopasowywane do punktu końcowego w następującej kolejności:

  1. Jeśli adres IP i portu TCP dokładnie pasuje do adresu IP i portu TCP z punktem końcowym, punkt końcowy jest używany.

  2. Jeśli nie ma dokładnego odpowiednika, TCP port jest sprawdzany na podstawie wszystkich IP_ANY punkty końcowe, i jeśli znajduje się na liście TCP port, służy do tego punktu końcowego.

  3. Jeśli nie zostanie odnaleziony odpowiednik dokładne portu, punktu końcowego TCP domyślny jest używany.

Proces łączenia skojarzenia zawsze powoduje 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 przeszukuje następnego punktu końcowego.

Przykłady: Kojarzenie połączenia użytkownika 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ących adresach IP i porty TCP:

127.0.0.1:1533

Dodatkowo załóżmy, ustanowiono następujące punkty końcowe TCP:

Nazwa punktu końcowego

Wartości skonfigurowanych

Sprzężenie zwrotne

LISTENER_IP = 127.0.0.1 i LISTENER_PORT = 1533

Zdalne

LISTENER_IP = ALL i LISTENER_PORT = 1533

Domyślne TSQL TCP

Niepołączone z dowolnego adresu IP lub portu

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

  • Jeśli klient uzyskuje połączenie TCP 127.0.0.1:1533, jest punktem końcowym skojarzony z sesja Sprzężenie zwrotne punktu końcowego, ponieważ nie ma dokładnego odpowiednika adresu IP i port TCP do Sprzężenie zwrotne punktu końcowego.

  • Jeśli klient uzyskuje połączenie TCP 251.40.20.151:1533, jest nie dokładnego odpowiednika, adres IP i port TCP do punktu końcowego, ale Zdalne jest dostępny dla połączenia, ponieważ Zdalne nasłuchuje na adres IP i portu 1533.Jeśli łączące logowania nie ma uprawnień do Zdalne końcowym, ten proces kończy się niepowodzeniem.Nie próbuje łączyć się z pozostałe możliwe punkty końcowe, takie jak Domyślne TSQL TCP, do których identyfikator logowania może mieć uprawnień.

  • Jeśli klient uzyskuje połączenie TCP 251.40.20.151:1433, nie zostanie odnaleziony dokładny odpowiednik adresu IP i port TCP do punktu końcowego, a nie zostanie odnaleziony odpowiednik dla portu TCP 1533 przy użyciu dowolnego adresu IP, ale Domyślne TSQL TCP jest dostępny dla połączenia, ponieważ Domyślne TSQL TCP nasłuchuje na dowolny adres IP i dowolnego portu.

Uaktualnienie i/lub instalowanie

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

Zarządzanie punktów końcowych za pomocą języka Transact-SQL

Punkty końcowe są tworzone i zarządzane za pomocą Transact-SQL. Są one tworzone i usunięte z instrukcji CREATE punktu KOŃCOWEGO i DROP punktu KOŃCOWEGO.Istnieją także instrukcji, aby kontrolować, 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ć uprawnienia CONNECT do punktu końcowego oraz globalne uprawnienia dla SQL Server Aby się zalogować. Uprawnienia do łączenia się z punktami końcowymi domyślne niejawnie jest przyznawane użytkownikom podczas logowania są tworzone.Dostęp do punktów końcowych są zarządzane przy użyciu GRANT | DENY | REVOKE KOŃCOWEGO na CONNECT.

Podczas tworzenia nowego punktu końcowego TCP SQL Server automatycznie odwołuje wszystkie istniejące uprawnienia na Domyślne TSQL TCP punktu końcowego.Aby zapoznać się z przykładem sposobu tworzenia nowego punktu końcowego TCP Zobacz How to: Configure the Database Engine to Listen on Multiple TCP Ports.

  • Aby ograniczyć dostęp do punktu końcowego, administrator może odmówić uprawnienia do grupy Wszyscy (za pomocą instrukcja DENY CONNECT), a następnie udzielić uprawnień do konkretnych osób lub role (za pomocą instrukcja udzielić CONNECT).

  • Aby przywrócić uprawnienia do oryginalnego stanu, należy PRZYZNAĆ uprawnienie CONNECT PUBLIC grupy.

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

Security noteSecurity Note:

Upoważnienie do używania punkt końcowy jest skojarzony z nazwa punktu końcowego.Po zmianie nazwy typu punktu końcowego, ograniczenia zabezpieczeń (na przykład DENY CONNECT instrukcji) nie są poprawnie stosowane.Nazwa punktu końcowego zostanie zmieniona, gdy zmienia się do portu.Jeśli SQL Server nasłuchuje na portach dynamiczne, port mogą ulec zmianie, zmiana nazwy punktu końcowego i upuszczając uprawnienia skojarzonego punktu końcowego. Aby uniknąć tego zagrożenia bezpieczeństwa, nie mają zestaw niestandardowe uprawnienia punkty końcowe skojarzone z portów dynamicznych i nie należy zmieniać kolejność, w którym z punktem końcowym protokołu TCP/IP występuje w rejestrze.

Aby uzyskać więcej informacji dotyczących sposobu ustawiania zabezpieczeń dla punktów końcowych zobacz GRANT Endpoint Permissions (Transact-SQL).