Festlegen, dass der Server Anforderungen systemeigener XML-Webdienste überwacht
Diese Funktion wird in zukünftigen Versionen von Microsoft SQL Server nicht mehr bereitgestellt. Verwenden Sie diese Funktion beim Entwickeln neuer Anwendungen nicht, und planen Sie das Ändern von Anwendungen, in denen es zurzeit verwendet wird.
Wenn Sie eine Instanz von SQL Server als Webdienst einrichten möchten, der systemeigene Überwachungsvorgänge von HTTP-SOAP-Anforderungen unterstützt, ist es erforderlich, einen HTTP-Endpunkt (URL-Namespace) zu erstellen und dessen Eigenschaften sowie die Methoden, die der Endpunkt verfügbar macht, zu definieren.
HTTP-Endpunkte, die für die Verwendung mit SQL Server erstellt werden, können am selben TCP-Port (Port 80) Überwachungsvorgänge durchführen und Anforderungen empfangen, der von den Microsoft Internetinformationsdiensten (IIS) für den WWW-Dienst verwendet wird. Dies ist möglich, da jede URL, unabhängig davon, ob sie für die Verwendung mit SQL Server oder IIS vorgesehen ist, beim Windows Server 2003-Betriebssystem für die Verwendung über den HTTP-Überwachungsprozess (Http.sys) registriert wird.
Nehmen Sie beispielsweise an, dass Sie einen Endpunkt mit folgender URL erstellt haben: http://MyServer/My endpoint. Dieser Endpunkt wird dann mit Http.sys registriert. Wenn eine SOAP-Anforderung an diesen Endpunkt gesendet wird, gelangt diese zunächst zu dem in der URL (MyServer) identifizierten Server. Beim Empfangen der Anforderung, vergleicht die Http.sys-Ebene auf dem Server den Rest der URL mit dem registrierten Endpunkt und leitet die Anforderung direkt an die Instanz von SQL Server weiter und umgeht dabei IIS. Zudem können Sie, wenn Sie die Internetdienste-Manager-Konsole (Inetmgr.exe) verwenden, ein virtuelles Verzeichnis erstellen, das einem HTTP-Endpunkt für IIS mit einer anderen URL entspricht, z. B. http://MyServer/MyVDir.
Erstellen und Verwalten von Endpunkten
Verwenden Sie die folgende Transact-SQL-Anweisungen, um Endpunkte zu erstellen und zu verwalten:
-
Hiermit werden Endpunkte erstellt, Methoden definiert, für die die Clientanwendung HTTP-SOAP-Anforderungen an den Endpunkt senden kann sowie Authentifizierungsinformationen festgelegt und Ports angegeben.
-
Hiermit werden Methoden hinzugefügt, gelöscht oder geändert oder Endpunktoptionen geändert.
-
Hiermit werden nicht gewünschte oder veraltete Endpunkte gelöscht.
Endpunktberechtigungen und -authentifizierung
Um HTTP-Endpunkte zu erstellen, zu ändern oder zu löschen, müssen Sie über Berechtigungen verfügen. Für den Zugriff auf die Endpunkte ist eine Authentifizierung erforderlich. Diese Anforderungen werden in den folgenden Themen beschrieben:
Programmierbarkeit im Web
Wenn Sie gespeicherte Prozeduren oder benutzerdefinierte Funktionen verfügbar machen möchten, ziehen Sie folgendes Thema zurate:
Standardmäßige Ausführungsumgebung
Standardmäßig werden HTTP-SOAP-Anforderungen an systemeigene XML-Webdienste in SQL Server unter den in der folgenden Tabelle genannten Einstellungen ausgeführt.
SET ANSI_NULL_DFLT_ON ON
Falls die Standardoption ANSI NULL für die Datenbank auf FALSE festgelegt ist, wird die standardmäßige NULL-Zulässigkeit neuer Spalten außer Kraft gesetzt. Weitere Informationen finden Sie unter SET ANSI_NULL_DFLT_ON (Transact-SQL).SET QUOTED_IDENTIFIER ON
Bezeichner können durch doppelte Anführungszeichen begrenzt werden. Literale müssen in diesem Fall durch einfache Anführungszeichen begrenzt werden. Weitere Informationen finden Sie unter SET QUOTED_IDENTIFIER (Transact-SQL).SET NUMERIC_ROUNDABORT OFF
Bei Genauigkeitsverlusten werden keine Fehlermeldungen generiert, und das Ergebnis wird auf die Genauigkeit der Spalte oder Variablen gerundet, die das Ergebnis speichert. Weitere Informationen finden Sie unter SET NUMERIC_ROUNDABORT (Transact-SQL).SET ARITHABORT ON
Wenn während der Ausführung ein Fehler aufgrund eines Überlaufs oder einer Division durch 0 auftritt, wird die Abfrage oder der Batch beendet. Weitere Informationen finden Sie unter SET ARITHABORT (Transact-SQL).SET ANSI_WARNINGS ON
Wenn NULL-Werte in Aggregatfunktionen, wie beispielsweise SUM oder AVG, auftreten, wird eine Warnmeldung generiert. Weitere Informationen finden Sie unter SET ANSI_WARNINGS (Transact-SQL).SET ANSI_NULLS ON
Vergleiche gegen einen NULL-Wert, die mithilfe des Gleichheitsoperators (=) oder Ungleichheitsoperators (<>) durchgeführt werden, werden zu FALSE ausgewertet. Weitere Informationen finden Sie unter SET ANSI_NULLS (Transact-SQL).SET CONCAT_NULL_YIELDS_NULL ON
Das Verketten eines NULL-Wertes mit einer Zeichenfolge führt zu einem NULL-Ergebnis. Weitere Informationen finden Sie unter SET CONCAT_NULL_YIELDS_NULL (Transact-SQL).SET ANSI_PADDING ON
Im Fall von Spalten, in denen kürzere Werte gespeichert sind, als die definierte Spaltengröße werden die Werte aufgefüllt. Bei Spalten, die nachfolgende Leerstellen in char-, varchar-, binary- und varbinary-Daten aufweisen, werden nachfolgende Leerstellen oder Nullen nicht gekürzt. Weitere Informationen finden Sie unter SET ANSI_PADDING (Transact-SQL).SET CURSOR_CLOSE_ON_COMMIT ON
Wenn für eine Transaktion entweder ein Commit oder ein Rollback ausgeführt wird, werden geöffnete Cursor geschlossen. Weitere Informationen finden Sie unter SET CURSOR_CLOSE_ON_COMMIT (Transact-SQL).SET IMPLICIT_TRANSACTIONS OFF
Standardmäßig werden Transaktionen in HTTP-SOAP-Sitzungen im Autocommitmodus ausgeführt, bei dem für alle einzelnen Anweisungen ein Commit ausgeführt wird, wenn Sie erfolgreich abgeschlossen werden. Weitere Informationen finden Sie unter SET IMPLICIT_TRANSACTIONS (Transact-SQL).
Überlegungen zum Clusterfailover für HTTP-SOAP-Dienste
Beim Installieren von SQL Server empfiehlt es sich, ein Domänenkonto als SQL-Dienstkonto zu verwenden und sicherzustellen, dass das Konto keine vollständigen Administratorrechte auf dem lokalen Computer besitzt. Dies hat Auswirkungen auf das Einrichten eines Computers mit SQL Server als virtuellen Server in einem Windows-Cluster. Die Überlegungen beziehen sich auf die Konfiguration der systemeigenen SQL HTTP-SOAP-Dienste.
SQL Server nutzt den HTTP-Treiber von Windows Server 2003. Diese HTTP-Überwachung ist so konzipiert, dass sie Anforderungen an jede beliebige Anwendung weiterleitet, die auf der Windows-Plattform über ein entsprechendes Abonnement verfügt, einschließlich SQL Server und IIS. Zum Abonnieren dieses Dienstes müssen Anwendungen die HTTP-APIs aufrufen, um die spezifische Stamm-URL der Anwendung, auch Namespace genannt, zu reservieren. Diese Reservierung weist den HTTP-Treiber an, alle nachfolgenden Anforderungen von dieser URL an die Abonnementanwendung weiterzuleiten. Der Aufruf dieser HTTP-APIs muss im Kontext eines Kontos erfolgen, das über lokale Windows-Administratorrechte verfügt. Seit SQL Server 2005 erfolgen diese Aufrufe mithilfe einer speziellen gespeicherten Prozedur namens sp_reserve_http_namespaces (weitere Informationen finden Sie unter Reservieren eines HTTP-Namespace). Diese gespeicherte Prozedur erstellt eine Bindung zwischen der Stamm-URL und dem SQL-Dienstkonto für das Routing des HTTP-Treibers von Windows. Verfügt das SQL-Dienstkonto nicht über Administratorrechte auf dem lokalen Computer, muss die gespeicherte Prozedur anstelle dessen über ein lokales Windows-Administratorkonto aufgerufen werden. Sobald dieser Namespace registriert wurde, können die SQL SOAP-Endpunkte unter dieser URL erstellt werden, damit nachfolgende HTTP-Anforderungen umgeleitet werden. In einem Clusterumfeld muss diese HTTP-Namespacereservierung von einem lokalen Windows-Administrator auf jedem der Knoten vorgenommen werden. So wird sichergestellt, dass der HTTP-Dienst die Anforderungen weiterhin an den Computer mit SQL Server weiterleitet, wenn ein Failover über einen der Knoten auftritt.
Eine weitere Überlegung hinsichtlich des Clusterfailovers mit SQL Server und HTTP-SOAP hängt mit der Verwendung von Verschlüsselungszertifikaten für Anforderungen über den SSL-Kanal zusammen. Weitere Informationen finden Sie unter Konfigurieren eines Zertifikats zur Verwendung durch SSL. In einer Clusterumgebung muss auch die Konfiguration der Zertifikate auf jedem der Knoten erfolgen. Der Antragsteller dieser Zertifikate muss als vollqualifizierter Name des Namens des virtuellen Servers festgelegt werden. Damit sichergestellt ist, dass die Kerberos-Authentifizierung über HTTP konfiguriert ist, lesen Sie die Informationen unter Registrieren von Kerberos-Dienstprinzipalnamen (Service Principal Names, SPNs) mithilfe von Http.sys, die auch für Cluster gelten.