Netzwerkprotokolle und TDS-Endpunkte
Aktualisiert: 05. Dezember 2005
Bei der Kommunikation zwischen SQL Server-Datenbankmodul und einer Anwendung wird die Kommunikation in einem Microsoft-Kommunikationsformat formatiert, das als Tabular Data Stream-Paket (TDS) bezeichnet wird. Die Netzwerkprotokollebene der SQL Server-Netzwerkschnittstelle (SQL Network Interface, SNI), die die Netzwerkbibliotheken für SQL Server 2000 und MDAC (Microsoft Data Access Components) ersetzt, verkapselt das TDS-Paket in einem Standardkommunikationsprotokoll, z. B. TCP/IP oder Named Pipes. Die SNI-Protokollebene wird sowohl von Datenbankmodul als auch von SQL Native Client verwendet. Die SNI-Protokollebene wird nicht direkt konfiguriert. Stattdessen werden der Server und SQL Native Client für die Verwendung eines Netzwerkprotokolls konfiguriert. Datenbankmodul und SQL Native Client verwenden dann automatisch die entsprechenden Protokolleinstellungen. Der Server erstellt für jedes Netzwerkprotokoll ein SQL Server-Objekt, das als TDS-Endpunkt bezeichnet wird. Auf dem Server werden die TDS-Endpunkte während der SQL Server-Installation durch SQL Server installiert.
Dieses Thema beschreibt, wie der Server TDS-Endpunkte erstellt und verwendet. Weitere Informationen zum Konfigurieren des Servers finden Sie unter Konfigurieren von Servernetzwerkprotokollen und Netzwerkbibliotheken.
Auf dem Clientcomputer muss SQL Native Client installiert und für die Verwendung eines Netzwerkprotokolls konfiguriert werden, das auf dem Server aktiviert ist. Weitere Informationen zu Clients finden Sie unter Konfigurieren von Clientnetzwerkprotokollen.
Aktivieren von Serverprotokollen nach dem Setup
Die zugrunde liegenden Netzwerkprotokolle des Betriebssystems (z. B. TCP/IP) sollten bereits auf dem Client und dem Server installiert sein. Netzwerkprotokolle werden in der Regel während der Installation von Microsoft Windows installiert; sie sind nicht Teil des SQL Server-Setups. Wenn das erforderliche Netzwerkprotokoll auf dem Server nicht verfügbar und konfiguriert ist, wird Datenbankmodul nicht gestartet. Wenn das erforderliche Netzwerkprotokoll auf dem Client nicht verfügbar und konfiguriert ist, kann die Netzwerkbibliothek nicht verwendet werden.
Hinweis: |
---|
Im Folgenden bedeutet "Aktivieren eines Protokolls" das Aktivieren des Protokolls für SQL Server, nicht für das Betriebssystem. |
Die für die Kommunikation mit SQL Server 2005 von einem anderen Computer aus erforderlichen Netzwerkprotokolle werden häufig während der Installation für SQL Server nicht aktiviert. Um eine Verbindung von einem Clientcomputer aus herzustellen, müssen Sie daher ggf. das TCP/IP-, Named Pipes- oder VIA-Protokoll aktivieren. (Das Shared Memory-Protokoll wird standardmäßig in allen Installationen aktiviert; es kann jedoch nur zum Herstellen einer Verbindung mit Datenbankmodul aus einer Clientanwendung auf dem gleichen Computer verwendet werden). Weitere Informationen zu den Netzwerkprotokollen, die für Ihren Installationstyp aktiviert sind, finden Sie unter Standardnetzwerkkonfiguration von SQL Server.
Verwenden Sie zum Aktivieren der Netzwerkprotokolle entweder das Oberflächen-Konfigurationstool oder den Konfigurations-Manager von SQL Server. Alternativ können Protokolle während der Installation mithilfe von Optionen an der Eingabeaufforderung aktiviert werden. Weitere Informationen finden Sie unter Vorgehensweise: Installieren von SQL Server 2005 von der Eingabeaufforderung.
Nach dem Installieren und Konfigurieren der Netzwerkverbindungen ist SQL Server in der Lage, jede beliebige Kombination aus Server-Netzwerkprotokollen gleichzeitig zu überwachen.
Definition eines TDS-Endpunktes
Ein TDS-Endpunkt ist das SQL Server-Objekt, das den Kommunikationspunkt zwischen SQL Server und einem Client darstellt. SQL Server erstellt automatisch einen Endpunkt für jedes der vier Protokolle, die von SQL Server unterstützt werden. Standardmäßig besitzen alle Benutzer Zugriff darauf, wenn die Protokolle aktiviert werden. Wenn ein Netzwerkprotokoll nicht aktiviert ist, ist der Endpunkt zwar trotzdem vorhanden, kann jedoch nicht verwendet werden. Ein zusätzlicher Endpunkt wird für die dedizierte Administratorverbindung (Dedicated Administrator Connection, DAC) erstellt, der nur von Mitgliedern der festen Serverrolle sysadmin verwendet werden kann.
SQL Server generiert einen eindeutigen Namen für jeden TDS-Endpunkt. In der folgenden Tabelle sind die Endpunkte aufgeführt, die automatisch erstellt werden.
Zweck | Endpunktname |
---|---|
Shared Memory |
TSQL LocalMachine |
Named Pipes |
TSQL Named Pipes |
TCP/IP |
TSQL Default TCP |
VIA |
TSQL Default VIA |
DAC |
Dedizierte Administratorverbindung |
HTTP |
HyperText Transport Protocol |
Für die Named Pipes- und Shared Memory-Protokolle kann nur ein Endpunkt pro Instanz vorhanden sein. Es sind keine konfigurierbaren Endpunkte für diese Protokolltypen vorhanden. Für TCP/IP und VIA ist ein Standardendpunkt vorhanden, es können jedoch zusätzliche Endpunkte erstellt werden. HTTP-Endpunkte werden auch von Benutzern erstellt, und sie werden nicht im SQL Server-Konfigurations-Manager angezeigt, obwohl sie im Oberflächen-Konfigurationstool angezeigt werden.
Nur der Besitzer und der Status können für Systemendpunkte (mithilfe von ALTER ENDPOINT) geändert werden. Sie können die Standardendpunkte nicht deaktivieren, sie können jedoch angehalten und gestartet werden. Ein angehaltener Endpunkt führt die Überwachung weiterhin durch, weist jedoch neue Verbindungen zurück und schließt diese.
Hinweis: |
---|
Standardmäßig werden Clients so konfiguriert, dass alle Protokolle ausprobiert werden, bis eines von ihnen funktioniert. Wenn das TCP/IP-Protokoll deaktiviert ist, fahren Clients mit dem nächsten Protokoll fort. Wenn TCP/IP aktiviert ist, der Endpunkt jedoch angehalten wurde, wird der Verbindungsversuch nicht zurückgewiesen, damit der Client keine anderen Protokolle ausprobiert, die angehaltene Verbindung kann jedoch nicht verwendet werden. In diesem Fall müssen Sie explizit eine Verbindung mit einem aktiven Endpunkt herstellen. |
Dynamische TCP-Ports stellen in der Regel Verbindungen mit dem TCP-Standardendpunkt her.
Protokolleinstellungen in der Registrierung
Die Einstellungen für die TDS-Endpunkte werden in der Registrierung aufgezeichnet. Benutzer sollten Transact-SQL-Anweisungen zum Erstellen oder Ändern von Endpunkten und den Konfigurations-Manager von SQL Server zum Aktivieren bzw. Deaktivieren von Protokollen verwenden, wodurch die Endpunkte gestartet bzw. angehalten werden.
Wenn der Benutzer Protokolleinstellungen in der Registrierung ändert, zeigt dies keine Auswirkungen. Die Registrierung ist von den Metadaten getrennt.
Zuordnen einer Benutzerverbindung zu einem Endpunkt
Beim Herstellen einer Verbindung mit Datenbankmodul wird die Verbindung in SQL Server einem bestimmten Endpunkt zugeordnet, und es wird ausgewertet, ob dem die Verbindungen herstellenden Anmeldenamen die Berechtigung zum Verwenden des Endpunktes erteilt wurde. Verbindungen werden folgendermaßen zugeordnet:
- Shared Memory-Verbindungen verwenden den TSQL LocalMachine-Endpunkt.
- Named Pipes-Verbindungen verwenden den TSQL Named Pipes-Endpunkt.
- Dedizierte Administratorverbindungen verwenden den Dedizierte Administratorverbindung-Endpunkt.
- TCP-Verbindungen verwenden standardmäßig den TSQL Default TCP-Endpunkt. Wenn ein neuer (benutzerdefinierter) TCP-Endpunkt für einen bestimmten TCP-Port erstellt wird, werden Verbindungen mit diesem TCP-Port mit dem neuen Endpunkt verbunden. Wenn ein neuer TCP/TSQL-Endpunkt mithilfe von IP_ANY als Port erstellt wird, werden TCP-Verbindungen mit diesem neuen Endpunkt verbunden.
- VIA-Verbindungen werden auf die gleiche Weise wie TCP-Verbindungen behandelt.
Benutzerdefinierte Endpunkte verhalten sich auf die gleiche Weise wie Standardendpunkte. Wenn ein Endpunkt für eine IP-Adresse (oder alle IP-Adressen mithilfe von IP_ANY) und einem bestimmten TCP-Port erstellt wird, wird Benutzern die Berechtigung zum Herstellen von Verbindungen mit dem Endpunkt in einem Prozess, der als Bereitstellung bezeichnet wird, erteilt. Sie behalten die Bereitstellung unabhängig davon bei, ob der Server tatsächlich die Kombination aus IP-Adresse und TCP-Port überwacht. Eine Verbindung mit einer IP-Adresse und einem TCP-Port wird einem Endpunkt in der folgenden Reihenfolge zugeordnet:
- Wenn die IP-Adresse und der TCP-Port genau mit der IP-Adresse und dem TCP-Port eines Endpunktes übereinstimmen, wird der Endpunkt verwendet.
- Wenn keine genaue Übereinstimmung vorliegt, wird der TCP-Port für alle IP_ANY-Endpunkte überprüft; wenn der TCP-Port in der Liste enthalten ist, wird dieser Endpunkt verwendet.
- Wenn keine genaue Portübereinstimmung vorliegt, wird der Standardendpunkt verwendet.
Der Verbindungszuordnungsvorgang führt immer zur Auswahl höchstens eines Endpunktes. Für diesen Endpunkt werden die Verbindungsberechtigungen überprüft. Wenn der Benutzer keine Berechtigungen für den betreffenden Endpunkt besitzt, sucht der Prozess nicht nach dem nächsten Endpunkt.
Beispiele: Zuordnen von Benutzerverbindungen und Endpunkten
Das folgende Beispiel zeigt, wie die IP-Adresse und der TCP-Port zum Auswählen eines Endpunktes verwendet werden. Angenommen, der Server ist für die Überwachung der folgenden IP-Adressen und TCP-Ports konfiguriert:
127.0.0.1:1533
Außerdem wurden die folgenden TCP-Endpunkte eingerichtet.
Endpunktname | Konfigurierte Werte |
---|---|
Loopback |
LISTENER_IP= 127.0.0.1 und LISTENER_PORT = 1533 |
Remote |
LISTENER_IP = ALL und LISTENER_PORT = 1533 |
TSQL Default TCP |
Mit keiner IP-Adresse und keinem Port verknüpft |
Drei Verbindungsmöglichkeiten sind denkbar:
- Wenn ein Client eine TCP-Verbindung mit 127.0.0.1:1533 herstellt, wäre der der Sitzung zugeordnete Endpunkt der Loopback-Endpunkt, weil eine genaue Übereinstimmung der IP-Adresse und des TCP-Ports mit dem Loopback-Endpunkt vorhanden ist.
- Wenn ein Client eine TCP-Verbindung mit 251.40.20.151:1533 herstellt, liegt keine genaue Übereinstimmung der IP-Adresse und des TCP-Ports mit einem Endpunkt vor, Remote ist jedoch für die Verbindung verfügbar, weil Remote beliebige IP-Adressen und Port 1533 überwacht. Wenn der die Verbindung herstellende Anmeldename keine Berechtigung für den Remote-Endpunkt besitzt, schlägt der Vorgang fehl. Es wird kein Verbindungsversuch mit anderen möglichen Endpunkten (z. B. TSQL Default TCP) unternommen, für die der Anmeldename möglicherweise Berechtigungen besitzt.
- Wenn ein Client eine TCP-Verbindung mit 251.40.20.151:1433 herstellt, liegt keine genaue Übereinstimmung der IP-Adresse und des TCP-Ports mit einem Endpunkt vor, und es gibt keine Übereinstimmung für TCP-Port 1522 mit einer IP-Adresse; TSQL Default TCP ist jedoch für die Verbindung verfügbar, weil TSQL Default TCP alle IP-Adressen und Ports überwacht.
Aktualisierung und/oder Installation
Standardmäßig besitzen alle Benutzer Zugriff auf die TDS-Endpunkte (mit Ausnahme des Endpunktes der dedizierten Administratorverbindung). Da diese Endpunkte intern durch den Server erstellt werden, weisen sie keinen Besitzer auf, und sie können nicht einem bestimmten Konto zugeordnet werden.
Verwalten von Endpunkten mithilfe von Transact-SQL
Endpunkte werden mit Transact-SQL erstellt und verwaltet. Sie werden mit den CREATE ENDPOINT- und DROP ENDPOINT-Anweisungen erstellt und gelöscht. Es sind auch Anweisungen zum Steuern, Ändern und Anwenden des Besitzes von Endpunkten vorhanden.
Damit eine Verbindung mit einer Instanz von SQL Server mithilfe von Transact-SQL-Endpunkten hergestellt werden kann, müssen Benutzer über die CONNECT-Berechtigung für einen Endpunkt und globale Berechtigung für die Anmeldung bei SQL Server verfügen. Die Berechtigung zum Herstellen einer Verbindung mit den Standardendpunkten wird Benutzern beim Erstellen von Anmeldenamen implizit erteilt. Der Zugriff auf Endpunkte wird mit GRANT | DENY | REVOKE CONNECT ON ENDPOINT verwaltet.
Wenn ein neuer TCP-Endpunkt erstellt wird, hebt SQL Server automatisch alle vorhandenen Berechtigungen für den TSQL Default TCP-Endpunkt auf. Ein Beispiel zum Erstellen eines neuen TCP-Endpunktes finden Sie unter Vorgehensweise: Konfigurieren des Datenbankmoduls zum Überwachen mehrerer TCP-Ports.
- Um den Zugriff auf einen Endpunkt einzuschränken, kann der Administrator der EVERYONE-Gruppe (mithilfe der DENY CONNECT-Anweisung) die Berechtigung verweigern und dann bestimmten Personen oder Rollen den Zugriff (mithilfe der GRANT CONNECT-Anweisung) erteilen.
- Um die Berechtigungen in den ursprünglichen Zustand zurückzusetzen, verwenden Sie die GRANT CONNECT-Anweisung, um der PUBLIC-Gruppe die Verbindungsberechtigung zu erteilen.
- Um einen Endpunkt für eine bestimmte Anwendung bereitzustellen, verwenden Sie die DENY CONNECT-Anweisung, um allen Benutzern mit Ausnahme der Benutzer dieser Anwendung die Verbindungsberechtigung zu verweigern.
Sicherheitshinweis: |
---|
Die Autorisierung für die Verwendung eines Endpunktes ist dem Namen des Endpunktes zugeordnet. Wenn sich der Name eines Endpunktes ändert, werden die Sicherheitseinschränkungen (z. B. DENY CONNECT-Anweisungen) nicht mehr ordnungsgemäß angewendet. Der Name eines Endpunktes wird geändert, wenn sich der Port ändert. Wenn SQL Server dynamische Ports überwacht, kann sich der Port ändern, wodurch sich der Endpunktname ändert und die zugehörigen Endpunktberechtigungen gelöscht werden. Damit dieses Sicherheitsrisiko vermieden wird, legen Sie keine benutzerdefinierten Berechtigungen für Endpunkte fest, die dynamischen Ports zugeordnet sind, und ändern Sie nicht die Reihenfolge, in der ein TCP/IP-Endpunkt in der Registrierung auftritt. |
Weitere Informationen zum Festlegen der Sicherheit für Endpunkte finden Sie unter GRANT (Endpunktberechtigungen) (Transact-SQL).
Siehe auch
Andere Ressourcen
CREATE ENDPOINT (Transact-SQL)
ALTER ENDPOINT (Transact-SQL)
DROP ENDPOINT (Transact-SQL)
Hilfe und Informationen
Informationsquellen für SQL Server 2005
Änderungsverlauf
Version | Verlauf |
---|---|
05. Dezember 2005 |
|