Gespeicherte Prozedur - LinkFang.de





Gespeicherte Prozedur


Eine gespeicherte Prozedur (englisch stored procedure) ist eine Funktion in Datenbankmanagementsystemen, mit der ganze Abläufe von Anweisungen vom Datenbank-Client aufgerufen werden können. Sie ist somit ein eigenständiger Befehl, der eine Abfolge gespeicherter Befehle ausführt. Gespeicherte Prozeduren werden im Data-Dictionary der jeweiligen Datenbank gespeichert.

Allgemein

Mittels gespeicherter Prozeduren können häufiger verwendete Abläufe, die sonst durch viele einzelne Befehle vom Client ausgeführt werden würden, auf das Datenbanksystem ausgelagert und durch einen einzigen Aufruf (CALL oder EXECUTE) ausgeführt werden (siehe auch Client-Server-System). Mitunter wird dadurch die Leistung gesteigert, da weniger Daten zwischen Client und Datenbanksystem ausgetauscht werden müssen und das Datenbankmanagementsystem häufig auf leistungsfähigeren Servern läuft.

Neben der gewöhnlichen Syntax der Abfragesprache (meist SQL) können in gespeicherten Prozeduren auch zusätzliche Befehle zur Ablaufsteuerung oder Auswertung von Bedingungen hinzugefügt werden. Damit können sie mit Makrosprachen bestimmter Anwendungsprogramme verglichen werden. Oft wird das verwendete SQL um herstellerspezifische Funktionen erweitert. Auch der Einsatz anderer Programmiersprachen wie etwa Java oder C# ist inzwischen teilweise möglich.

Gespeicherte Prozeduren tragen dazu bei, die Sicherheit einer Anwendung stark zu erhöhen. Da der Client in der Regel keine DELETE-, UPDATE- oder INSERT-Zugriffsrechte mehr benötigt, ist es Angreifern nicht möglich, selbst Datenbanken zu manipulieren (z. B. durch SQL-Injection). Der Client hat ausschließlich die Möglichkeit, bereits vorgefertigte Prozeduren aufzurufen; so können Entwickler vermeiden, dass ein ungewünschtes Verhalten von Dritten hervorgerufen werden kann.

„In diesen Konstrukten sind SQL-Injection-Angriffe fast unmöglich. Eine theoretische Chance besteht jedoch weiterhin.“

Christopher Kunz: PHP-Sicherheit (Seite 143)[1]

Implementierung

Datenbanksystem Implementierungssprache
DB2 SQL PL
Firebird PSQL (teilweise auch Oracles PL/SQL)
Informix SPL[2][3]
Oracle PL/SQL und Java
Microsoft SQL Server Transact SQL und diverse .NET Framework Sprachen
MySQL SQL:2003[4]
PostgreSQL PL/pgSQL und viele weitere eigene Sprachkonstrukte wie PL/Tcl, PL/Perl oder PL/Python

Extended Stored Procedure

Extended Stored Procedure (Abkürzung: XP) ist eine von Microsoft SQL erweiterte Form der stored procedure. XPs erlauben durch die Verwendung von DLLs komplexere Prozesse auszuführen. Je nach MSSQL-Version sind diverse erweiterte gespeicherte Prozeduren vordefiniert[5], während Administratoren weitere hinzufügen können.[6]

Microsoft hat die Verwendung von XPs inzwischen als deprecated gekennzeichnet, was bedeutet, dass zukünftige MSSQL-Versionen erweiterte Prozeduren nicht mehr unterstützen werden. Die aktuelle Version (Microsoft SQL Server 2012) unterstützt XPs allerdings noch. Als Ersatz nennt Microsoft die Verwendung der Laufzeitumgebung Common Language Runtime.[7]

Literatur

  • Guy Harrison und Steven Feuerstein: MySQL Stored Procedure Programming. 1. Auflage. O’Reilly Media, 2006, ISBN 978-0-596-10089-6, S. 640.
  • Informix Software: Informix Guide to SQL: Tutorial. 2. Auflage. Prentice Hall PTR, 1999, ISBN 978-0-13-016165-9, S. 350.
  • Informix Software: Informix Guide to SQL: Reference and Syntax. 2. Auflage. Prentice Hall PTR, 1999, ISBN 978-0-13-016166-6, S. 1776.

Weblinks

Einzelnachweise

  1. Christopher Kunz, Stefan Esser: PHP-Sicherheit: PHP/MySQL-Webanwendungen sicher programmieren. 3. Auflage. dpunkt.verlag, Heidelberg 2008, ISBN 978-3-89864-535-5.
  2. Informix Guide to SQL: Tutorial, Kapitel 10, Creating & Using SPL Routines, S. 371
  3. Informix Guide to SQL: Reference and Syntax, Kapitel 3, SPL Statements, S. 901
  4. MySQL 5.5 Reference Manual: CREATE PROCEDURE and CREATE FUNCTION Syntax. Oracle, abgerufen am 25. Februar 2010 (english).
  5. Microsoft MSDN: General Extended Stored Procedures (Transact-SQL)
  6. Microsoft MSDN: Adding an Extended Stored Procedure to SQL Server
  7. Microsoft MSDN: Deprecated Database Engine Features in SQL Server 2012

Kategorien: SQL

Quelle: Wikipedia - http://de.wikipedia.org/wiki/Gespeicherte Prozedur (Vollständige Liste der Autoren des Textes [Versionsgeschichte])    Lizenz: CC-by-sa-3.0

Änderungen: Alle Bilder mit den meisten Bildunterschriften wurden entfernt. Ebenso alle zu nicht-existierenden Artikeln/Kategorien gehenden internen Wikipedia-Links (Bsp. Portal-Links, Redlinks, Bearbeiten-Links). Entfernung von Navigationsframes, Geo & Normdaten, Mediadateien, gesprochene Versionen, z.T. ID&Class-Namen, Style von Div-Containern, Metadaten, Vorlagen, wie lesenwerte Artikel. Ansonsten sind keine Inhaltsänderungen vorgenommen worden. Weiterhin kann es durch die maschinelle Bearbeitung des Inhalts zu Fehlern gerade in der Darstellung kommen. Darum würden wir jeden Besucher unserer Seite darum bitten uns diese Fehler über den Support mittels einer Nachricht mit Link zu melden. Vielen Dank!

Stand der Informationen: August 201& - Wichtiger Hinweis: Da die Inhalte maschinell von Wikipedia übernommen wurden, ist eine manuelle Überprüfung nicht möglich. Somit garantiert LinkFang.de nicht die Richtigkeit und Aktualität der übernommenen Inhalte. Sollten die Informationen mittlerweile fehlerhaft sein, bitten wir Sie darum uns per Support oder E-Mail zu kontaktieren. Wir werden uns dann innerhalb von spätestens 10 Tagen um Ihr Anliegen kümmern. Auch ohne Anliegen erfolgt mindestens alle drei Monate ein Update der gesamten Inhalte.