Freigeben über


Erweiterte gespeicherte Prozeduren

Wichtiger HinweisWichtig

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. Verwenden Sie stattdessen die CLR-Integration.

Erweiterte gespeicherte Prozeduren ermöglichen Ihnen, eigene externe Routinen in einer Programmiersprache, wie z. B. C, zu erstellen. Erweiterte gespeicherte Prozeduren werden für die Benutzer wie normale gespeicherte Prozeduren dargestellt und auch genauso ausgeführt. Sie können Parameter an erweiterte gespeicherte Prozeduren übergeben, und die Prozeduren können Ergebnisse und Rückgabestatuswerte zurückgeben.

Erweiterte gespeicherte Prozeduren sind DLLs (Dynamic Link Libraries), die von einer Instanz von SQL Server dynamisch geladen und ausgeführt werden können. Erweiterte gespeicherte Prozeduren werden direkt im Adressraum einer Instanz von SQL Server ausgeführt und mithilfe der API für erweiterte gespeicherte Prozeduren von SQL Server programmiert.

HinweisHinweis

Erweiterte gespeicherte Prozeduren sollten nicht verwendet werden, um den Microsoft .NET Framework-CLR zu instanziieren oder verwalteten Code auszuführen. Dieses Szenario wird in kommenden Versionen von SQL Server nicht mehr unterstützt. Die CLR-Integration bietet eine robuste und sichere Alternative zum Entwickeln erweiterter gespeicherter Prozeduren.

Nachdem eine erweiterte gespeicherte Prozedur geschrieben wurde, können Mitglieder der festen Serverrolle sysadmin diese in einer Instanz von SQL Server registrieren und anschließend anderen Benutzern Berechtigungen zum Ausführen der Prozedur erteilen. Erweiterte gespeicherte Prozeduren können nur zur master-Datenbank hinzugefügt werden.

HinweisHinweis

Erweiterte gespeicherte Prozeduren können Arbeitsspeichermangel oder andere Probleme hervorrufen, die die Leistung und Zuverlässigkeit des Servers reduzieren. Sie sollten in Betracht ziehen, erweiterte gespeicherte Prozeduren in einer anderen Instanz von SQL Server als der Instanz zu speichern, die die Daten enthält, auf die verwiesen wird. Erwägen Sie auch die Verwendung von verteilten Abfragen für den Zugriff auf die Datenbank. Weitere Informationen finden Sie unter Verteilte Abfragen.

Sicherheit

Bevor er die erweiterte gespeicherte Prozedur dem Server hinzufügt und Benutzern Berechtigungen zum Ausführen der Prozedur gewährt, sollte der Systemadministrator die Prozedur gründlich überprüfen, um sicherzustellen, dass sie keinen schädlichen oder bösartigen Code enthält.

Zusätzliche Sicherheitsrichtlinien betreffen folgende Punkte:

  • Überprüfen Sie alle Benutzereingaben.

  • Verketten Sie keine Benutzereingaben, bevor Sie sie überprüft haben.

  • Führen Sie keine Befehle aus, die aus unüberprüften Benutzereingaben konstruiert worden sind. Weitere Informationen finden Sie unter SQL Injection.