Entwerfen von SQL Server- Endpunkten



Ähnliche Dokumente
Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

ISA Server 2004 Erstellen einer Webverkettung (Proxy-Chain) - Von Marc Grote

Eigenen WSUS Server mit dem UNI WSUS Server Synchronisieren

Schritt 1: Verwenden von Excel zum Erstellen von Verbindungen mit SQL Server-Daten

Wiederherstellen der Beispieldatenbanken zum Buch Microsoft Project 2010

System-Update Addendum

ISA Server Exchange RPC over HTTPS mit NTLM-Authentifizierung

Entwerfen einer Datenbankserver-Infrastruktur mit Microsoft SQL Server Original Microsoft Training für Examen

BüroWARE Exchange Synchronisation Grundlagen und Voraussetzungen

Installation Microsoft SQL Server 2008 Express

INSTALLATIONSANLEITUNG der Version 2.1 (Jänner 2014)

und ch/

-Machen.

Step by Step Webserver unter Windows Server von Christian Bartl

OP-LOG

Anleitung Captain Logfex 2013

Anleitung zum Prüfen von WebDAV

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Lokale Installation von DotNetNuke 4 ohne IIS

Registrierung am Elterninformationssysytem: ClaXss Infoline

Schritt 1: Verwenden von Excel zum Erstellen von Verbindungen zu SQL Server Analysis Services-Daten

ISA Server 2004 Erstellen eines neuen Netzwerkes - Von Marc Grote

Einrichten eines Postfachs mit Outlook Express / Outlook bis Version 2000

Installationsanleitung dateiagent Pro

Tutorial Windows XP SP2 verteilen

Lizenz-Server überwachen

Kurzanleitung zum Einrichten des fmail Outlook Addin

Aktivieren von Onlinediensten im Volume Licensing Service Center

ISA Server 2004 Einzelner Netzwerkadapater

MSDE 2000 mit Service Pack 3a

Whitepaper. Produkt: combit address manager / Relationship Manager. Client-Verbindungsprobleme beheben. combit GmbH Untere Laube Konstanz

Clients in einer Windows Domäne für WSUS konfigurieren

Firewalls für Lexware Info Service konfigurieren

Windows Server 2008 (R2): Anwendungsplattform

Avira Management Console Optimierung für großes Netzwerk. Kurzanleitung

SharePoint Demonstration

Installieren von Microsoft Office Version 2.1

" -Adresse": Geben Sie hier bitte die vorher eingerichtete Adresse ein.

Betriebshandbuch. MyInTouch Import Tool

2 Konfiguration von SharePoint

mysoftfolio360 Handbuch

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

Eine Anleitung, wie Sie Mozilla Thunderbird 2 installieren und konfigurieren können. Installation Erstkonfiguration... 4

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:

terra CLOUD IaaS Handbuch Stand: 02/2015

Windows Server 2012 RC2 konfigurieren

Clientkonfiguration für Hosted Exchange 2010

Lizenzen auschecken. Was ist zu tun?

FTP-Leitfaden RZ. Benutzerleitfaden

Erstellen eines Formulars

START - SYSTEMSTEUERUNG - SYSTEM - REMOTE

Kompatibilitätsmodus und UAC

Swisscom TV Medien Assistent

Öffnen Sie den Internet-Browser Ihrer Wahl. Unabhängig von der eingestellten Startseite erscheint die folgende Seite in Ihrem Browserfenster:

Powermanager Server- Client- Installation

Klicken Sie mit einem Doppelklick auf das Symbol Arbeitsplatz auf Ihrem Desktop. Es öffnet sich das folgende Fenster.

Update und Konfiguraton mit dem ANTLOG Konfigurations-Assistenten

OLXTeamOutlook 1.5 für Outlook 2003, 2002/XP, 2000 und 97/98

STRATO Mail Einrichtung Microsoft Outlook

IBM SPSS Data Access Pack Installationsanweisung für Windows

bizsoft Rechner (Server) Wechsel

Anti-Botnet-Beratungszentrum. Windows XP in fünf Schritten absichern

So richten Sie Ihr Postfach im Mail-Programm Apple Mail ein:

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version Deutsch

estos UCServer Multiline TAPI Driver

TeamViewer App für Outlook Dokumentation

MSXFORUM - Exchange Server 2003 > Konfiguration NNTP unter Exchange 2003

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

2. Die eigenen Benutzerdaten aus orgamax müssen bekannt sein

ICS-Addin. Benutzerhandbuch. Version: 1.0

POP3 über Outlook einrichten

Einrichtung eines -postfaches

EDI Connect goes BusinessContact V2.1

How to install freesshd

CADEMIA: Einrichtung Ihres Computers unter Windows

Einrichtung eines -Zugangs mit Mozilla Thunderbird

Installation SelectLine SQL in Verbindung mit Microsoft SQL Server 2014 Express with management tools

Administrator-Anleitung

Microsoft Dynamics NAV 2013 R/2 Installationsanleitung. Inhalt: Begleitmaterial des ERP Übungsbuchs:

Firewalls für Lexware Info Service konfigurieren

Fernzugriff auf Kundensysteme. Bedienungsanleitung für Kunden

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

Upgrade von Windows Vista auf Windows 7

Installation und Einrichtung des Microsoft SQL Servers 2005 Express. Abb.1.0

Einrichtung Konto Microsoft Outlook 2010

Installationsanleitung. TFSInBox

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Konfigurationsanleitung Konfiguration unter Outlook Express 6.0

Installationshilfe VisKalk V5

Konfigurationsanleitung Konfiguration unter Outlook Express Konfigurationsanleitung Konfiguration unter Outlook Express 6.

Übung - Konfiguration eines WLAN-Routers in Windows 7

Web Interface für Anwender

Kurzanleitung zur Softwareverteilung von BitDefender Produkten...2

Adressen der BA Leipzig

So richten Sie Outlook Express für Ihre s ein

Transkript:

165 K A P I T E L 5 Entwerfen von SQL Server- Endpunkten Der Entwurf eines soliden Sicherheitssystems erfordert die Implementierung einer umfassenden Strategie. Diese Strategie wird häufig als Verteidigung in der Tiefe bezeichnet. Endpunkte wurden mit Microsoft SQL Server 2005 als eine erste Sicherheitsbarriere für alle Verbindungen vorgestellt. Dieses Kapitel behandelt die Konfiguration von Endpunkten und erklärt, wie diese Funktionalität verwendet werden kann, um unbefugten Datenzugriff zu verhindern. In diesem Kapitel abgedeckte Prüfungsziele: Planen der SQL Server-Sicherheit auf Dienstebene Entwerfen einer Endpunktstrategie für sichere HTTP-Verbindungen Lektionen in diesem Kapitel: Lektion 1: Übersicht über Endpunkte..................................... 166 Lektion 2: TCP-Endpunkte............................................. 170 Lektion 3: HTTP-Endpunkte............................................ 175 Bevor Sie beginnen Damit Sie die Lektionen in diesem Kapitel durcharbeiten können, müssen Sie eine Instanz von SQL Server und die Beispieldatenbank für AdventureWorks installiert haben.

166 Kapitel 5 Entwerfen von SQL Server-Endpunkten Lektion 1: Übersicht über Endpunkte Endpunkte kontrollieren, wie auf eine Instanz von SQL Server und mit welchen Kommunikationsmethoden zugegriffen werden kann. Ähnlich wie Firewalls im Netzwerk stellen Endpunkte eine Sicherheitsebene zwischen den Anwendungen und Ihrer SQL Server-Instanz dar. Diese Lektion vermittelt einen grundlegenden Überblick über die Architektur von Endpunkten in SQL Server 2005. Am Ende dieser Lektion werden Sie in der Lage sein, die folgenden Aufgaben auszuführen: Verstehen von Endpunkten, die in Sicherheitsinstanzen verwendet werden Veranschlagte Zeit für die Lektion: 15 Minuten Endpunktarten und Nutzlasten Ein Endpunkt hat zwei grundlegende Bestandteile: ein Transportprotokoll und die Nutzlast. Endpunkte können für zwei verschiedene Transportprotokolle erstellt werden: TCP und HTTP. Endpunkte verfügen darüber hinaus über eine Nutzlast, die die Grundkategorie des zulässigen Datenverkehrs definiert. Die Nutzlast kann mit den Werten SOAP, TSQL, SERVICE_BROKER und DATABASE_MIRRORING angegeben werden. Tabelle 5.1 listet die gültigen Kombinationen von Endpunkttransporten und Endpunktnutzlasten auf. Tabelle 5.1 Transportprotokolle und Nutzlasten für Endpunkte Transport TCP TCP TCP HTTP Nutzdaten TSQL SERVICE_BROKER DATABASE_MIRRORING SOAP Anhand der Kombination von Endpunkttransport und Nutzlast kann SQL Server den zulässigen Datenverkehr bereits filtern, bevor die eigentlichen Befehle die SQL Server-Instanz erreichen. Nehmen Sie beispielsweise an, dass Sie einen TCP-Endpunkt mit einer Nutzlast von TSQL definiert haben. Würde eine Anwendung versuchen, HTTP-, SERVICE_BROKERoder DATABASE_MIRRORING-Daten über diesen Endpunkt zu senden, würde die Verbindung zurückgewiesen, ohne dass die Anforderung authentifiziert werden muss. Dieser Prozess ist mit der Funktionsweise von Firewalls im Netzwerk vergleichbar. Netzwerkadministratoren konfigurieren Firewalls, um Datenverkehr nur über bestimmte TCP- und UDP-Ports zuzulassen. Jeder Versuch, Anforderungen über blockierte Ports zu senden, wird an der Firewall zurückgewiesen. Endpunkte funktionieren auf gleiche Art und Weise. Nicht ordnungsgemäß formatierte Anforderungen werden anhand der Endpunktdefinition abgelehnt.

Endpunktzugriff Lektion 1: Übersicht über Endpunkte 167 Selbst wenn der an den Endpunkt gerichtete Datenverkehr dem erforderlichen Transport und der richtigen Nutzlast entspricht, wird die Verbindung nur dann zugelassen, wenn der Zugriff auf den Endpunkt gewährt wurde. Der Zugriff auf einen Endpunkt wird auf zwei Ebenen kontrolliert. Die erste Ebene der Zugangssicherheit wird vom Status des Endpunktes bestimmt. Ein Endpunkt kann einen von drei Zuständen innehaben: Gestartet (STARTED), Beendet (STOPPED) und Deaktiviert (DISABLED). Die drei möglichen Endpunktzustände haben die folgenden Auswirkungen: STARTED Der Endpunkt ist aktiv, akzeptiert Verbindungen und antwortet auf Anwendungsanforderungen. STOPPED Der Endpunkt reagiert auf eingehende Verbindungen, liefert aber einen Verbindungsfehler an die Anwendung zurück. DISABLED Der Endpunkt ist inaktiv und reagiert nicht auf eingehende Verbindungsversuche. Die zweite Ebene der Zugangssicherheit bilden die für den Endpunkt konfigurierten Verbindungsberechtigungen. Um eine Verbindung zu einem Endpunkt herstellen zu können, müssen Anwendungen über ein in SQL Server erstelltes Anmeldekonto verfügen, dem die CONNECT- Berechtigung für den Endpunkt gewährt wurde. All dieser Aufwand mag Ihnen etwas übertrieben erscheinen, nur um eine Verbindung zu einer SQL Server-Instanz vor der Benutzerauthentifizierung zu erstellen. In früheren Versionen von SQL Server konnten jegliche Anwendungen SQL Server-Verbindungen herstellen und beliebige Anforderungen übermitteln. Es wurden keine Versuche unternommen, die Gültigkeit der von den Anwendungen übermittelten Anforderungen sicherzustellen. Dementsprechend war es viel einfacher, einen Server anzugreifen. Noch bevor die Anforderungen das Datenbankmodul erreichen, gewährleistet SQL Server 2005, dass nur gültige Anforderungen von berechtigten Benutzern übermittelt werden. Administratoren steht außerdem quasi ein Hauptschalter zur Verfügung, um sofort jeglichen Zugang zu SQL Server zu unterbinden, wenn sie meinen, dass der Server ein Angriffsziel geworden ist. Sie brauchen lediglich den Status des Endpunktes auf Deaktiviert zu setzen. Schnelltest 1. Was sind die beiden Bestandteile eines Endpunkts? 2. Welche drei Endpunktzustände gibt es und was ist der Unterschied zwischen diesen? 3. Welche Berechtigung muss gewährt werden, bevor ein Endpunkt eine Verbindungsanforderung akzeptiert?

168 Kapitel 5 Entwerfen von SQL Server-Endpunkten Antworten zum Schnelltest 1. Für Endpunkte muss das Transportprotokoll und die Nutzlast definiert werden. Als Transport kann TCP oder HTTP dienen. Die Nutzlast kann TSQL, SERVICE_BROKER, DATABASE_MIRRORING oder SOAP sein. 2. Die drei Endpunktzustände sind Gestartet (STARTED), Beendet (STOPPED) und Deaktiviert (DISABLED). Ein Endpunkt im Zustand Gestartet akzeptiert und antwortet auf eingehende Verbindungen. Ein Endpunkt im Zustand Beendet akzeptiert Verbindungsanforderungen, liefert jedoch eine Fehlermeldung zurück. Ein Endpunkt ist Deaktiviert, wenn dieser nicht auf Anforderungen reagiert. 3. Um Verbindungen aufbauen zu können, muss dem verwendeten Anmeldekonto die CONNECT-Berechtigung für den Endpunkt gewährt werden. Übung: Kontrollieren vorhandener Endpunkte In dieser Übung verwenden Sie dynamische Verwaltungssichten (Dynamic Management Views, DMV), um Informationen über die in Ihrer Umgebung konfigurierten Endpunkte zusammenzustellen. 1. Starten Sie Microsoft SQL Server Management Studio (SSMS) und stellen Sie eine Verbindung zu Ihrer SQL Server-Instanz her. Öffnen Sie ein neues Abfragefenster und führen Sie folgende Befehle aus: SELECT * FROM sys.endpoints SELECT * FROM sys.tcp_endpoints SELECT * FROM sys.http_endpoints SELECT * FROM sys.database_mirroring_endpoints SELECT * FROM sys.service_broker_endpoints 2. Untersuchen Sie die Ergebnisse hinsichtlich der Informationen, die von der jeweiligen dynamischen Verwaltungssicht zurückgegeben werden. Zusammenfassung der Lektion SQL Server-Endpunkte verhalten sich ähnlich wie Firewalls, indem sie sämtlichen Datenverkehr unterbinden, der nicht den zulässigen Formaten entspricht. Jeder Endpunkt ist einem Transportprotokoll zugeordnet, das entweder als TCP oder als HTTP definiert werden kann. Der zweite Bestandteil von Endpunkten wird als Nutzlast bezeichnet und als TSQL, DATABASE_MIRRORING, SERVICE_BROKER oder SOAP definiert.

Lernzielkontrolle Lektion 1: Übersicht über Endpunkte 169 Sie können die folgenden Fragen verwenden, um Ihre Kenntnisse zu den in Lektion 1 Übersicht über Endpunkte vermittelten Informationen zu testen. Die Fragen sind auch auf der Begleit-CD verfügbar (in englischer Sprache), wenn Sie diese in elektronischer Form verwenden wollen. Hinweis Antworten Die Antworten zu den folgenden Fragen sowie Erklärungen, warum die jeweiligen Antworten richtig oder falsch sind, finden Sie im Abschnitt Antworten am Ende dieses Buches. 1. Sie sind der Datenbankadministrator der Firma A. Datum Corporation. Ihre Benutzer klagen darüber, dass sie mit ihren Anwendungen keine Verbindung zu SQL Server herstellen können. Sie haben alle Anwendungseinstellungen überprüft. Darüber hinaus können Sie auf Ihrer Arbeitsstation mit SQL Server Management Studio auf den Server zugreifen. Allerdings erhalten die Anwendungen weiterhin eine Fehlermeldung, die besagt, dass der Zugriff verweigert wurde. Was könnte die Ursache des Problems sein? A. Der Status des TCP-Endpunktes für TSQL ist deaktiviert (DISABLED). B. Der Status des TCP-Endpunktes für TSQL ist beendet (STOPPED). C. Remoteverbindungen sind nicht aktiviert. D. Die Benutzer verfügen nicht über die CONNECT-Berechtigung für den Zugriff auf den Endpunkt.

170 Kapitel 5 Entwerfen von SQL Server-Endpunkten Lektion 2: TCP-Endpunkte TCP-Endpunkte können für drei verschiedene Nutzlasten konfiguriert werden: TSQL, DATA- BASE _MIRRORING und SERVICE_BROKER. Diese Lektion beschreibt die Konfigurationsunterschiede zwischen diesen Nutzlasten. Am Ende dieser Lektion werden Sie in der Lage sein, die folgenden Aufgaben auszuführen: Konfigurieren von TCP-Endpunkten zur Unterstützung von Datenbankanwendungen Veranschlagte Zeit für die Lektion: 30 Minuten TCP-Protokollparameter TCP-Endpunkte werden zur Überwachung von bestimmten IP-Adressen und Portnummern konfiguriert. Die folgenden beiden Parameter können für alle TCP-Endpunkte universell angegeben werden: LISTENER_PORT LISTENER_IP Der LISTENER_PORT-Parameter ist erforderlich. Der TCP- oder TSQL-Endpunkt, der für jede SQL Server-Instanz während der Installation angelegt wird, ist bereits für Port 1433 oder die alternative Portnummer der Instanz konfiguriert. Empfohlene Vorgehensweisen Portnummern Da es sich bei Port 5022 um die Standardportnummer eines DATABASE_MIRRORING-Endpunktes handelt und Port 1433 der Standardport eines TSQL-Endpunktes ist, sollten Sie eine andere Portnummer angeben. Wenn Sie die Standardportnummern vermeiden, können Sie potentielle Angriffe vereiteln oder zumindest erschweren, denn die Angreifer müssen nun zunächst einen Portscanner verwenden und können nicht einfach eine Verbindung zu Port 1433 oder 5022 herstellen, um einen DoS-Angriff (Denial of Service, DoS) oder einen anderen Hackerangriff auszuführen. Der LISTENER_IP-Parameter ist ein optionales Argument. Dieser Parameter kann für einige Arten von Anwendungen die Sicherheit effektiv erhöhen. Sie können eine bestimmte IP- Adresse angeben, die der Endpunkt überwachen soll. Die Standardeinstellung ist ALL. Mit anderen Worten, der Endpunkt überwacht alle gültigen IP-Adressen auf eingehende Verbindungen. Wenn in Ihrer konkreten Situation allerdings alle Verbindungsanforderungen von einer einzelnen Quelle stammen, können Sie das LISTENER_IP-Argument angeben. Wenn Sie eine IP-Adresse angeben, überwacht der Endpunkt nur noch die angegebene Adresse auf eingehende Verbindungsanforderungen.

Lektion 2: TCP-Endpunkte 171! Prüfungstipp Abgesehen von den allgemeinen TCP-Einstellungen verfügen TSQL-Endpunkte über keine zusätzlichen Konfigurationsoptionen. Konfigurationsparameter für Datenbankspiegelung und Service Broker Endpunkte für Datenbankspiegelung und Service Broker bieten Optionen, mit denen Sie die Authentifizierungsmethoden und Verschlüsselungseinstellungen festlegen können. Sie können entweder die Microsoft Windows-basierte Authentifizierung oder Zertifikate verwenden. Mit den Optionen NTLM, KERBEROS und NEGOTIATE können Sie die Microsoft Windowsbasierte Authentifizierung angeben. Mit der NEGOTIATE-Option werden die Instanzen veranlasst, die Authentifizierungsmethode dynamisch zu wählen. Sie können die zertifikatsbasierte Authentifizierung unter Verwendung eines Zertifikats von einer anerkannten Autorität oder durch Generieren Ihres eigenen Windows-Zertifikats konfigurieren. Empfohlene Vorgehensweisen Authentifizierung Wenn sich alle Datenbankspiegelungs- und Service Broker-Instanzen innerhalb einer einzelnen Domäne oder in Domänen mit Vertrauensstellungen befinden, sollten Sie die Windows- Authentifizierung verwenden. Wenn Instanzen Domänen ohne Vertrauensstellungen umfassen, sollten Sie die zertifikatsbasierte Authentifizierung verwenden. Sämtliche Kommunikation zwischen Endpunkten kann verschlüsselt werden. Sie können angeben, welcher Verschlüsselungsalgorithmus für die Kommunikation zu verwenden ist. Der Standardalgorithmus ist RC4, aber Sie können auch den viel leistungsfähigeren AES- Algorithmus (AES, Advanced Encryption Standard) angeben. Empfohlene Vorgehensweisen Verschlüsselung Verwenden Sie RC4 für minimale Verschlüsselungsstärke und beste Leistung. Verwenden Sie AES, wenn Sie starke Verschlüsselung benötigen, beachten Sie allerdings, dass dieser Algorithmus einen höheren Verarbeitungsaufwand mit sich bringt, was die Leistung beeinflusst.! Spezifische Argumente für Datenbankspiegelung Datenbankspiegelungsendpunkte umfassen einen dritten Parameter, der mit der Datenbankspiegelungssitzung in Zusammenhang steht. Prüfungstipp Pro SQL Server-Instanz können Sie nur einen TCP-Endpunkt mit einer Nutzlast von DATABASE_MIRRORING angeben.

172 Kapitel 5 Entwerfen von SQL Server-Endpunkten Sie können für den Endpunkt PARTNER, WITNESS oder ALL angeben. Ein Endpunkt, der als PARTNER definiert wurde, kann nur von einer Prinzipal- oder Spiegelserverinstanz verwendet werden. Ein Endpunkt, der als WITNESS definiert wurde, kann nur von einer Zeugenserverinstanz verwendet werden. Ein Endpunkt, der als WITNESS definiert wurde, unterstützt alle Serverrollen. Hinweis Endpunkte und Express Edition Wenn Sie einen Datenbankspiegelungsendpunkt auf einem Server mit SQL Server 2005 Express Edition erstellen, können Sie nur die Rolle WITNESS angeben. Das folgende Transact-SQL-Beispiel zeigt, wie ein Datenbankspiegelungsendpunkt erstellt werden kann: CREATE ENDPOINT [Spiegelung] AS TCP (LISTENER_PORT = 5022) FOR DATA_MIRRORING (ROLE = PARTNER, ENCRYPTION = REQUIRED); ALTER ENDPOINT [Spiegelung] STATE = STARTED; Dieser Code erstellt einen Endpunkt, um Datenbankspiegelungssitzungen über Port 5022 zu unterstützen und Verbindungsanforderungen an allen gültigen IP-Adressen zu akzeptieren. Die Option ROLE = PARTNER gibt an, dass der Endpunkt auf dieser SQL-Server-Instanz nur Prinzipal- und Spiegeldatenbanken unter Verwendung des RC4-Verschlüsselungsalgorithmus unterstützt. Spezifische Argumente für Service Broker Zusätzlich zur Authentifizierungsmethode und Verschlüsselung verfügen Service Broker-Endpunkte über Parameter, die die Nachrichtenweiterleitung betreffen. Die MESSAGE_FORWARDING-Option ermöglicht die Weiterleitung von Nachrichten, die für eine andere Broker-Instanz bestimmt sind, an eine angegebene Weiterleitungsadresse. Mögliche Optionen sind Aktiviert (ENABLED) und Deaktiviert (DISABLED). Wenn die MESSAGE_FORWARDING-Option aktiviert ist (ENABLED), können Sie außerdem mit dem Parameter MESSAGE_FORWARDING_SIZE angeben, wie viel Speicherplatz in MB maximal dem Endpunkt zum Speichern von weiterzuleitenden Nachrichten zur Verfügung steht. Eine vollständige Diskussion zum Thema Service Broker geht zwar über den Umfang dieses Abschnitts hinaus, ein kurzer Überblick ist aber dennoch notwendig, um die Zusammenhänge zu erklären. Service Broker-Instanzen verarbeiten Nachrichten durch Ausführen von gespeicherten Prozeduren, um die Arbeit auf asynchrone Art und Weise auszuführen. Entsprechend der Konfiguration der Broker-Instanz werden Nachrichten in einem bestimmten Format verarbeitet. Es ist jedoch möglich, mehrere Broker-Instanzen in eine Umgebung zu konfigurieren und mit jeder dieser Instanzen ein anderes Nachrichtenformat zu verwenden. Mit Hilfe der Nachrichtenweiterleitung können Administratoren die Last auf einfache Weise über mehrere Broker-Instanzen hinweg verteilen, ohne Änderungen an den Anwendungen vornehmen zu müssen.

Lektion 2: TCP-Endpunkte 173 Hinweis Verschlüsselung Quelle und den Ziel des Datenverkehrs beeinflussen die Verschlüsselung der Kommunikation zwischen den Endpunkten. Wenn die Kommunikation ausschließlich innerhalb der SQL Server-Instanz erfolgt, wird der Datenverkehr nicht verschlüsselt, um unnötigen Kommunikationsaufwand zu vermeiden. Dies ist insbesondere für Service Broker wichtig, die viele Nachrichten über die Warteschlangen innerhalb einer einzelnen Instanz austauschen. Der Datenverkehr wird nur verschlüsselt, wenn die Daten an ein Ziel außerhalb der SQL Server- Instanz gesendet werden. Für diese Lektion gibt es keine Übung. In der vorherigen Übung haben Sie bereits die TCP- Endpunkte kontrolliert, die in der Standardkonfiguration existieren. In Kapitel 9 Datenbankspiegelung werden Sie TCP-Endpunkte mit einer Nutzlast von DATABASE_MIRRORING erstellen. Zusammenfassung der Lektion Schnelltest 1. Welche Arten der Authentifizierung sind für Service Broker- und Datenbankspiegelungsendpunkte verfügbar? 2. Was sind die beiden allgemeinen Bestandteile eines TCP-Endpunkts? Antworten zum Schnelltest 1. NTML- oder Kerberos-Authentifizierung kann angegeben werden. Sie können auch die Option NEGOTIATE angeben, mit der die zwischen Anwendung und Endpunkt zu verwendende Authentifizierungsmethode ausgehandelt werden kann. 2. Sie müssen einen Port angeben, den der Endpunkt überwachen soll. Sie können wahlweise eine IP-Adresse konfigurieren, um den Endpunkt in Bezug auf den akzeptierten Datenverkehr auf die angegebene IP-Adresse zu beschränken. TSQL-Endpunkte werden während der Installation zur Überwachung der für die Instanz angegebenen Portnummer konfiguriert. Service Broker- und Datenbankspiegelungsendpunkte können Authentifizierungsmethoden verwenden und für das Verschlüsseln des Datenverkehrs auf der Grundlage eines von Ihnen angegebenen Algorithmus konfiguriert werden.

174 Kapitel 5 Entwerfen von SQL Server-Endpunkten Lernzielkontrolle Sie können die folgenden Fragen verwenden, um Ihre Kenntnisse zu den in Lektion 2 TCP- Endpunkte vermittelten Informationen zu testen. Die Fragen sind auch auf der Begleit-CD verfügbar (in englischer Sprache), wenn Sie diese in elektronischer Form verwenden wollen. Hinweis Antworten Die Antworten zu den folgenden Fragen sowie Erklärungen, warum die jeweiligen Antworten richtig oder falsch sind, finden Sie im Abschnitt Antworten am Ende dieses Buches. 1. Sie haben eine Datenbankspiegelungssitzung innerhalb Ihrer Umgebung konfiguriert. Die Prinzipal- und Spiegelendpunkte wurden erfolgreich mit einer Rolleneinstellung (ROLE) von PARTNER erstellt und dann gestartet. Sie haben bestätigt, dass Sie auf jeden Endpunkt zugreifen und sich authentifizieren können. Allerdings schlägt die Konfiguration der Datenbankspiegelung fehl. Was könnte die Ursache des Problems sein? A. Der Authentifizierungsmodus wurde auf NTML festgelegt. B. Der Authentifizierungsmodus wurde auf NEGOTIATE festgelegt. C. Die Endpunkte verwenden unterschiedliche Verschlüsselungseinstellungen. D. Die Verschlüsselungseinstellung der Endpunkte wurde auf AES festgelegt.

Lektion 3: HTTP-Endpunkte Lektion 3: HTTP-Endpunkte 175 In den heutigen verteilten und oft globalen IT-Umgebungen besteht ein hoher Bedarf an serviceorientierten Anwendungen. Die Architektur, mit der serviceorientierte Anwendungen unterstützt werden können, basiert auf Webdiensten, die Anforderungen und Antworten in einem plattformunabhängigen Format namens SOAP (Simple Object Access Protocol) versenden und verarbeiten können. SOAP verwendet XML als Codierungsschema für Anforderungsund Antwortparameter sowie HTTP als Transportmechanismus. Innerhalb der neuen Technologie zur Verwaltung von SQL Server-Verbindungen anhand von Endpunkten unterstützt SQL Server 2005 HTTP-Endpunkte, die es Entwicklern gestatten, gespeicherte Prozeduren und Funktionen innerhalb einer Datenbank als Methoden zu veröffentlichen, die von beliebigen Anwendungen unter Zuhilfenahme des SOAP-Protokolls aufgerufen werden können. Diese Lektion behandelt wichtige Sicherheitsüberlegungen für die Implementierung von HTTP-Endpunkten. Darüber hinaus wird gezeigt, wie Sie diese Endpunkte erstellen und sichern können, damit Webdienste Anforderungen an Ihre Datenbank auf sichere Weise übermitteln können. Am Ende dieser Lektion werden Sie in der Lage sein, die folgenden Aufgaben auszuführen: Entwerfen einer Endpunktstrategie für sichere HTTP-Verbindungen Veranschlagte Zeit für die Lektion: 30 Minuten Praxistipp SQL Server 2000 unterstützte die Möglichkeit des direkten Zugriffs auf SQL Server-Daten über HTTP. Allerdings war die Implementierung ungeordnet und unsicher. HTTP-Endpunkte stellen ein Mittel dar, mit dem webbasierte Anwendungen gespeicherte Prozeduren oder Funktionen direkt aufrufen können. In der Tat muss der Anwendungsentwickler noch nicht einmal wissen, dass die Daten von SQL Server zurückgegeben werden. Ein großes Finanzdienstleistungsunternehmen, für das wir gearbeitet haben, konnte vor kurzem die Aktualisierung von SQL Server 2000 auf SQL Server 2005 abschließen. Für das Entwicklungsteam war dabei insbesondere die Möglichkeit der Verwendung von Endpunkten interessant. Die vorherige Version ihrer Datenbankanwendung enthielt Dutzende von Bestandteilen, deren einziger Zweck es war, eine Verbindung zur Datenbank herzustellen, gespeicherte Prozeduraufrufe auszuführen und die Ergebnisse wieder zu verpacken, um diese an die Kunden zurückzusenden. Die Kunden konnten auf ihre Daten mit Hilfe von Browsern zugreifen, wobei die im Hause in Form von Webdiensten entwickelten Komponenten vom Front-End-Code aufgerufen wurden.

176 Kapitel 5 Entwerfen von SQL Server-Endpunkten Mit der Aktualisierung auf SQL Server 2005 konnte dieses Unternehmen alle diese benutzerdefinierten Bestandteile durch HTTP-Endpunkte ersetzen. Nun verwendet die Front- End-Anwendung gespeicherte Prozeduren, die in Form von Webmethoden veröffentlich wurden, um die Ergebnisse an die Kunden zurückzugeben. Dies hatte unmittelbare Auswirkungen auf die Leistungsfähigkeit und Skalierbarkeit der Anwendung. Durch Eliminieren der benutzerdefinierten Middle-Tier-Bestandteile konnten den Kunden neue Funktionen in einem Bruchteil der Zeit zur Verfügung gestellt werden. HTTP-Endpunktsicherheit Zusätzlich zur Angabe des HTTP-Protokolls mit einer SOAP-Nutzlast, die die Endpunkte darauf beschränkt, nur gültige SOAP-Anforderungen zu akzeptieren, bieten HTTP-Endpunkte eine zusätzliche Sicherheitsebene. Die allgemeine Syntax für HTTP-Endpunkte lautet wie folgt: CREATE ENDPOINT Endpunkt_Name [ AUTHORIZATION Anmeldung ] STATE = { STARTED STOPPED DISABLED } AS HTTP ( PATH = 'url', AUTHENTICATION =( { BASIC DIGEST INTEGRATED NTLM KERBEROS } [,...n ] ), PORTS = ( { CLEAR SSL} [,... n ] ) [ SITE = {'*' '+' 'website' },] [, CLEAR_PORT = freierport ] [, SSL_PORT = SSLPort ] [, AUTH_REALM = { 'realm' NONE } ] [, DEFAULT_LOGON_DOMAIN = { 'Domäne' NONE } ] [, COMPRESSION = { ENABLED DISABLED } ] ) FOR SOAP( [ { WEBMETHOD [ 'Namespace'.] 'Alias_Methode' ( NAME = 'Datenbank.Besitzer.Name' [, SCHEMA = { NONE STANDARD DEFAULT } ] [, FORMAT = { ALL_RESULTS ROWSETS_ONLY NONE} ] ) } [,...n ] ] [ BATCHES = { ENABLED DISABLED } ] [, WSDL = { NONE DEFAULT 'sp_name' } ] [, SESSIONS = { ENABLED DISABLED } ] [, LOGIN_TYPE = { MIXED WINDOWS } ] [, SESSION_TIMEOUT = timeoutintervall NEVER ] [, DATABASE = { 'Datenbank_Name' DEFAULT } [, NAMESPACE = { 'Namespace' DEFAULT } ] [, SCHEMA = { NONE STANDARD } ] [, CHARACTER_SET = { SQL XML }] [, HEADER_LIMIT = int ]

Authentifizierungsmethode Lektion 3: HTTP-Endpunkte 177 Sie können entweder die Windows-Authentifizierung oder Zertifikate als Authentifizierungsmethode für die Endpunktverbindung verwenden. Durch Auswahl der Option NTLM, KER- BEROS oder NEGOTIATE können Sie die Microsoft Windows-basierte Authentifizierung konfigurieren. Mit der NEGOTIATE-Option werden die Instanzen veranlasst, die Authentifizierungsmethode dynamisch zu wählen. Für die zertifikatsbasierte Authentifizierung können Sie ein Zertifikat von einer anerkannten Autorität verwenden oder Sie generieren Ihr eigenes Windows-Zertifikat. Verschlüsselung Die Endpunkte unterstützen auch Verschlüsselungsoptionen. Die PORTS-Klausel ermöglicht Ihnen festzulegen, ob die Kommunikation im Klartext erfolgen oder SSL (Secure Sockets Layer) aktiviert werden soll. Wenn Sie die Option CLEAR angeben, sendet und empfängt der Endpunkt HTTP-Datenverkehr. Wenn Sie stattdessen die Option SSL angeben, muss die Kommunikation über HTTPS erfolgen. Anmeldungstyp Innerhalb der SOAP-Nutzlast kontrolliert der Parameter LOGIN_TYPE, welche Arten von Konten verwendet werden können, um Verbindungen mit dem Endpunkt aufzubauen. Wenn Sie diese Option auf WINDOWS festlegen, ermöglichen Sie die Authentifizierung unter Verwendung von Windows-Konten. Wenn Sie diese Option stattdessen auf MIXED festlegen, können Verbindungen unter Verwendung von Windows-Kontoinformationen oder SQL Server-Anmeldungen erfolgen. Angeben von Webmethoden Damit ein HTTP-Endpunkt sinnvoll verwendet werden kann, muss die SOAP-Nutzlast mindestens auf eine Webmethode verweisen. Webmethoden bieten Webdiensten einfachen Zugriff auf gespeicherte Prozeduren und Funktionen in Form von veröffentlichten Methoden. Im WEB- METHOD-Teil der sprachspezifischen Parameter der SOAP-Nutzlast können Sie bestimmte gespeicherte Prozeduren und Funktionen den Webmethoden zuordnen, die Sie mit dem Endpunkt veröffentlichen wollen. Das allgemeine Format des WEBMETHOD-Teils der SOAP-Nutzlast lautet wie folgt: [ { WEBMETHOD [ 'Namespace'.] 'Alias_Methode' ( NAME = 'Datenbank.Besitzer.Name' [, SCHEMA = { NONE STANDARD DEFAULT } ] [, FORMAT = { ALL_RESULTS ROWSETS_ONLY NONE} ] ) Die Argumente Namespace und Alias_Methode definieren den Namen der Webmethode, die mit dem HTTP-Endpunkt veröffentlich wird. Der Name muss für die SQL Server-Instanz eindeutig sein. Verwenden Sie die NAME-Klausel, um den vollständig qualifizierten Namen der gespeicherten Prozedur oder Funktion anzugeben, die Sie der Webmethode zuordnen wollen.

178 Kapitel 5 Entwerfen von SQL Server-Endpunkten Empfohlene Vorgehensweisen Objektsicherheit Der Name der Methode (Methode_Alias), die mit dem Endpunkt veröffentlicht werden soll, sollte nicht dem tatsächlichen Namen der gespeicherten Prozedur oder Funktion entsprechen. Die Verwendung von anderen Namen hindert Hacker daran, die über den HTTP-Endpunkt veröffentlichten Methoden aufzulisten und diese Namen dann für direkte Zugriffsversuche auf die zugrunde liegenden gespeicherten Prozeduren oder Funktionen zu verwenden. Die SCHEMA-Option definiert, ob eine Inline-XSD-Definition (XML Schema Definition, XSD) für das Argument WEBMETHOD in der SOAP-Antwort zurückgegeben werden soll. Die FORMAT-Option kontrolliert, wie Ergebnisse in der SOAP-Antwort zurückgegeben werden. Sie können wählen, ob das generierte Resultset zusammen mit Warnungen und Fehlermeldungen mit oder ohne Zeilenanzahl zurückgegeben werden soll. Sie brauchen das SOAP-Paket nicht selbst zu formulieren. Der Endpunkt erledigt das Verpacken der Daten in SOAP-Pakete. Angeben von WSDL-Unterstützung, Schemas und Namespaces Jeder HTTP-Endpunkt umfasst eine Klausel für die SOAP-Nutzlast zur Angabe der WSDL- Unterstützung (Web Services Description Language, WSDL). Wenn Sie NONE angeben, bietet der Endpunkt keine WSDL-Unterstützung. Wenn Sie DEFAULT angeben, verwendet der Endpunkt Standard-WSDL-Konventionen für die Webdienstbeschreibungssprache. Weitere Informationen Webdienstbeschreibungssprache Eine Diskussion von WSDL geht über den Umfang dieses Kapitels hinaus. Für weitere Information über WSDL und WSDL-Unterstützung lesen Sie in der SQL Server 2005-Onlinedokumentation den Artikel Standard-WSDL unter http://msdn2.microsoft.com/de-de/ library/ms190983.aspx. Als Bestandteil der SOAP-Nutzlastkonfiguration können Sie ein SCHEMA für den HTTP- Endpunkt definieren. HTTP-Endpunkte verwenden eine standardmäßige SCHEMA-Option, die von einer im Parameter WEBMETHOD angegebenen Methode außer Kraft gesetzt werden kann. Wenn Sie für die SCHEMA-Option NONE angeben, wird im SOAP-Paket keine Inline- XSD-Definition zurückgegeben. Wenn Sie stattdessen STANDARD angeben, wird zusammen mit dem Resultset eine Inline-XSD-Definition zurückgegeben. Hinweis Laden von Resultsets Wenn Sie ein Resultset aus einem SOAP-Paket in ein DataSet-Objekt laden wollen, benötigen Sie eine XML-Schemadefinition (XML Schema Definition, XSD). Darüber hinaus können Sie im Bereich für die SOAP-Nutzlast einen expliziten Namespace für den HTTP-Endpunkt angeben. Der Standardnamespace ist der Namespace der im Parameter WEBMETHOD angegebenen Webmethode. Diese Option kann in der WEBMETHOD-Definition überschrieben werden. Wenn Sie für diese Option den Standardwert DEFAULT verwenden (was normalerweise der Fall ist) oder diese Option nicht angeben, wird der Namespace http://tempuri.org angenommen.

Zusätzliche Parameter für die SOAP-Nutzlast Lektion 3: HTTP-Endpunkte 179 Sie können für die SOAP-Nutzlast mehrere weitere Parameter angeben, um das Verhalten des Endpunktes festzulegen. Neben den bereits behandelten Optionen können Sie die folgenden Parameter für die SOAP-Nutzlast angeben: [ BATCHES = { ENABLED DISABLED } ] [, SESSIONS = { ENABLED DISABLED } ] [, SESSION_TIMEOUT = timeoutintervall NEVER ] [, DATABASE = { 'Datenbank_Name' DEFAULT } ] [, CHARACTER_SET = { SQL XML }] [, HEADER_LIMIT = int ] Die Option BATCHES gibt an, ob eine Verbindung Ad-hoc-SQL-Abfragen an den Endpunkt richten darf. Wenn Sie diesen Parameter aktivieren, kann die Datenbankverbindung beliebige Ad-hoc-SQL-Abfragen übermitteln. Die Befehle, die Sie über eine Verbindung erfolgreich ausführen können, werden von den Sicherheitsberechtigungen innerhalb der Datenbank kontrolliert. Empfohlene Vorgehensweisen Aktivieren von Ad-hoc-SQL-Abfragen Sie sollten die Option BATCHES stets deaktivieren. Wenn Sie Ad-hoc-SQL-Abfragen über Verbindungen zu einem Endpunkt zulassen, öffnen Sie Hackern Tür und Tor zu Ihrer Datenbank. Wenn Sie gespeicherte Prozeduren oder Funktionen über einen HTTP-Endpunkt veröffentlichen, sollten Sie die WEBMETHOD-Klausel verwenden, um die zulässigen Prozeduren und Funktionen genau festzulegen. Wenn Sie die SESSIONS-Unterstützung aktivieren, werden mehrere SOAP-Anforderungen/Antworten in einer einzelnen SOAP-Sitzung verwaltet. Anwendungen haben so die Möglichkeit, mehrere Anforderungen während einer einzelnen SOAP-Sitzung an den Endpunkt zu senden. Wenn Sie für den Parameter DATABASE einen Wert angeben, ändern Sie den Datenbankkontext der Verbindung zum HTTP-Endpunkt. Geben Sie keine Datenbank an, wird die für das Anmeldekonto definierte Standarddatenbank verwendet. Weitere Informationen SOAP-Nutzlastparameter Für weitere Information über mögliche SOAP-Nutzlastoptionen für Endpunkte lesen Sie in der SQL Server 2005-Onlinedokumentation den Artikel CREATE ENDPOINT (Transact-SQL) unter http://msdn2.microsoft.com/de-de/library/ms181591.aspx.

180 Kapitel 5 Entwerfen von SQL Server-Endpunkten Schnelltest 1. Sie haben einen HTTP-Endpunkt erstellt und alle zur Verfügung stehenden Sicherheitsoptionen angegeben. Sie haben sich vergewissert, dass Ihre Anwendung über alle Sicherheitsberechtigungen verfügt, dass Ihrer Anwendung der Zugang zur Datenbank gewährt ist und dass die Anwendung die passenden Aufrufe an den HTTP-Endpunkt sendet. Jedoch erhalten Sie weiterhin Zugangsfehler. Was könnte die Ursache dieses Problems sein? 2. Welchen Parameter sollten Sie für die SOAP-Nutzlast angeben, damit der Endpunkt sinnvoll verwendet werden kann? 3. Welcher Parameter sollte aus Gründen der Sicherheit nie aktiviert werden? Antworten zum Schnelltest 1. Obwohl Sie den Endpunkt erstellt und bestätigt haben, dass alle Optionen aktiviert und mit Ihrer Anwendung kompatibel sind, müssen Sie noch einen zusätzlichen Schritt ausführen. Sie müssen der von Ihnen verwendeten Anmeldung die CONNECT-Berechtigung gewähren, um eine Verbindung zum Endpunkt herstellen zu können. 2. Der WEBMETHOD-Parameter gibt die Prozedur oder Funktion an, die vom Endpunkt veröffentlicht wird. Dieser Parameter sollte für HTTP-Endpunkte immer angegeben werden, um die ausführbaren Befehle zu beschränken. 3. Der BATCHES-Parameter konfiguriert den Endpunkt zur Ausführung von Ad-hoc-SQL- Abfragen über eingehende Verbindungen. Sie sollten diesen Parameter deaktivieren, um die potentielle Gefährdung Ihrer Datenbank durch Webdienstaufrufe einzugrenzen. Erstellen eines Endpunktes In dieser Übung erstellen Sie einen HTTP-Endpunkt, der die integrierte Sicherheit sowie SSL erfordert. Der Endpunkt veröffentlicht die gespeicherte Prozedur uspgetbillofmaterials aus der AdventureWorks-Datenbank in Form einer Webmethode. 1. Starten Sie SQL Server Management Studio, stellen Sie eine Verbindung zu Ihrer SQL Server-Instanz her und öffnen Sie ein neues Abfragefenster. 2. Geben Sie den folgenden Befehl zur Erstellung eines Endpunktes ein, legen Sie den Typ des Endpunktes als HTTP fest, verwenden Sie die integrierte Authentifizierung und konfigurieren Sie die PORTS-Einstellung für SSL. Die Anweisung definiert darüber hinaus die Nutzlast als SOAP und verwendet den WEBMETHOD-Parameter, um die gespeicherte Prozedur uspgetbillofmaterials als Webmethode zu veröffentlichen: CREATE ENDPOINT sql_endpunkt STATE = STARTED AS HTTP( PATH = '/sql', AUTHENTICATION = (INTEGRATED), PORTS = ( SSL ),

Lektion 3: HTTP-Endpunkte 181 SITE = 'SERVER' ) FOR SOAP ( WEBMETHOD 'MaterialRechnungen' (name='adventureworks.dbo.uspgetbillofmaterials'), WSDL = DEFAULT, = STANDARD, DATABASE = 'AdventureWorks', NAMESPACE = 'http://tempuri.org/' ); GO Hinweis Fehler bei der Erstellung des HTTP-Endpunktes Je nach Betriebssystem und auf dem Computer installierten Anwendungen könnten bei der Ausführung des Befehls Fehlermeldungen auftreten. Um dieses Problem zu lösen, lesen Sie den MSDN-Artikel Richtlinien und Einschränkungen für die Verwendung der systemeigenen XML-Webdienste unter http://msdn2.microsoft.com/de-de/library/ms189092.aspx. Zusammenfassung der Lektion Über HTTP-Endpunkte können Sie gespeicherte Prozeduren und Funktionen für den Anwendungszugriff veröffentlichen. Im Prinzip können Sie eine SQL Server-Instanz in einen Webdienst verwandeln, den die Anwendungen verwenden können. Der wichtigste Parameter innerhalb der SOAP-Nutzlastdefinition ist der WEBMETHOD- Parameter. WEBMETHOD gibt die Prozedur oder Funktion an, die vom Endpunkt veröffentlicht wird. Lernzielkontrolle Sie können die folgenden Fragen verwenden, um Ihre Kenntnisse zu den in Lektion 3 HTTP- Endpunkte vermittelten Informationen zu testen. Die Fragen sind auch auf der Begleit-CD verfügbar (in englischer Sprache), wenn Sie diese in elektronischer Form verwenden wollen. Hinweis Antworten Die Antworten zu den folgenden Fragen sowie Erklärungen, warum die jeweiligen Antworten richtig oder falsch sind, finden Sie im Abschnitt Antworten am Ende dieses Buches. 1. HTTP-Endpunkte sind auf welche der folgenden Elemente beschränkt? (Wählen Sie alle zutreffenden Antworten aus.) A. SOAP-Nutzlast B. HTTP- oder HTTPS-Datenverkehr C. TSQL-Nutzlast D. Windows-Authentifizierung

182 Kapitel 5 Entwerfen von SQL Server-Endpunkten 2. Sie arbeiten in einer Hochsicherheitsumgebung und müssen HTTP-Endpunkte aktivieren, um den Anforderungen einer neuen Anwendung zu genügen. Sie müssen sicherstellen, dass nur die in Ihrer Domäne authentifizierten Mitarbeiter Anforderungen an den Endpunkt senden können und dass die an die Clientcomputer zurückgegebenen Daten nicht abgehört werden können, selbst wenn sich jemand Zugang zu Ihrem Netzwerk verschafft hat. Welchen Optionen müssen Sie aktiveren, um diesen Erfordernissen zu entsprechen? (Wählen Sie alle zutreffenden Antworten aus.) A. LOGIN_TYPE = MIXED B. LOGIN_TYPE = WINDOWS C. PORTS(CLEAR) D. PORTS(SSL) 3. Welcher der folgenden Befehle ermöglicht es einem Webdienst, die gespeicherte Prozedur uspgetbillofmaterials aus der AdventureWorks-Datenbank anzurufen? Dabei muss die Datenverschlüsselung gewährleistet sein. Das Resultset wird in ein DataSet-Objekt geladen. A. CREATE ENDPOINT sql_endpunkt STATE = STARTED AS HTTP( PATH = '/sql', AUTHENTICATION = (INTEGRATED ), PORTS = ( SSL ), SITE = 'SERVER' ) FOR SOAP ( WEBMETHOD 'MaterialRechnungen' (name='adventureworks.dbo.uspgetbillofmaterials'), WSDL = DEFAULT, SCHEMA = STANDARD, DATABASE = 'AdventureWorks', NAMESPACE = 'http://tempuri.org/' ); GO B. CREATE ENDPOINT sql_endpunkt STATE = STARTED AS HTTP( PATH = '/sql', AUTHENTICATION = (INTEGRATED ), PORTS = ( SSL ), SITE = 'SERVER' ) FOR SOAP ( WEBMETHOD 'MaterialRechnungen' (name='adventureworks.dbo.uspgetbillofmaterials', SCHEMA = STANDARD), WSDL = DEFAULT,

Lektion 3: HTTP-Endpunkte 183 C. SCHEMA = STANDARD, DATABASE = 'AdventureWorks', NAMESPACE = 'http://tempuri.org/' ); CREATE ENDPOINT sql_endpunkt STATE = STARTED AS HTTP( PATH = '/sql', AUTHENTICATION = (INTEGRATED ), PORTS = ( SSL ), SITE = 'SERVER' ) FOR SOAP ( WEBMETHOD 'MaterialRechnungen' (name='adventureworks.dbo.uspgetbillofmaterials'), D. WSDL = DEFAULT, SCHEMA = STANDARD, DATABASE = 'AdventureWorks', NAMESPACE = 'http://tempuri.org/' ); CREATE ENDPOINT sql_endpunkt STATE = DISABLED AS HTTP( PATH = '/sql', AUTHENTICATION = (INTEGRATED ), PORTS = ( SSL ), SITE = 'SERVER' ) FOR SOAP ( WEBMETHOD 'MaterialRechnungen' (name='adventureworks.dbo.uspgetbillofmaterials'), WSDL = DEFAULT, SCHEMA = STANDARD, DATABASE = 'AdventureWorks', NAMESPACE = 'http://tempuri.org/' ); Zusammenfassung des Kapitels Endpunkte stellen eine erste Sicherheitsstufe innerhalb von SQL Server dar. Durch Implementierung einer Barriere, ähnlich einem Firewall, stellen Endpunkte sicher, dass nur gültige Verbindungen mit gültigem Datenverkehr Ihre SQL Server-Instanz erreichen können. Endpunkte können für das TCP- oder das HTTP-Protokoll erstellt werden. Die Nutzlast von TCP-Endpunkten kann auf TSQL, DATABASE_MIRRORING oder SERVICE_BRO- KER festgelegt werden. HTTP-Endpunkte können über SOAP-Nutzlasten verfügen.

184 Kapitel 5 Entwerfen von SQL Server-Endpunkten HTTP-Endpunkte ermöglichen die Veröffentlichung und Verwendung von gespeicherten Prozeduren und Funktionen in Form von Webdiensten. Im Prinzip verhält sich Ihr SQL- Server bei Verwendung von HTTP-Endpunkten wie ein registrierter Webdienst. Schlüsselbegriffe Kennen Sie die Bedeutung der folgenden wichtigen Begriffe? Sie können Ihre Antworten überprüfen, wenn Sie die Begriffe im Glossar am Ende dieses Buches nachschlagen. HTTP-Endpunkt SOAP (Simple Object Access Protocol) TCP-Endpunkt Webdienst Webdienstbeschreibungssprache (Web Services Description Language, WSDL) Fallstudie: Planen der SQL Server-Sicherheit In folgender Fallstudie werden Sie die erworbenen Kenntnisse zur Konfiguration von SQL Server-Endpunkten anwenden. Sie können die Antworten auf die folgenden Fragen im Abschnitt Antworten am Ende dieses Buches finden. Hintergrund Firmenüberblick Coho Vineyard wurde 1960 in der Moselregion von Trier, im Bundesland Rheinland-Pfalz, als lokale Weinkellerei in Familienbesitz gegründet. Seit 1980 ist die Weinkellerei in starkem Wachstum begriffen. Aufgrund des Erfolgs begannen die Eigentümer, andere Weinkellereien in der Region aufzukaufen. Heute gehören zu Coho Vineyard insgesamt 12 Weinkellereien in der Moselregion mit 250 Angestellten. 25 Angestellte arbeiten im zentralen Büro. In diesem Büro befinden sich auch die für das Unternehmen wichtigen Server. Geplante Änderungen Bis jetzt hat jede der zu Coho Vineyard gehörenden 12 Weinkellereien eine separate Website jeweils lokal betrieben. Coho Vineyard will die Webpräsenz dieser Weinkellereien konsolidieren, so dass Besucher im Web die Produkte aller 12 Weinkellereien von einer zentralen Website beziehen können. Das neue zentralisierte Büronetzwerk sollte auch die von den 12 Weinkellereien hochgeladenen finanziellen Informationen speichern. Problembeschreibung Wegen des dezentralen Aufbaus des Unternehmens war es bisher schwierig, Geschäftsinformationen zu konsolidieren, beispielsweise Finanzdaten und Marketinginformationen. Darüber hinaus existiert trotz der Anzahl von Mitarbeitern im Unternehmen kein zentrales E-Mail-System für die Angestellten.