www.wikidata.de-de.nina.az
Eine gespeicherte Prozedur englisch stored procedure ist eine Anweisung in Datenbankmanagementsystemen mit der ganze Ablaufe von Anweisungen vom Datenbank Client aufgerufen werden konnen Sie ist somit ein eigenstandiger Befehl der eine Abfolge gespeicherter Befehle ausfuhrt Gespeicherte Prozeduren werden im Data Dictionary der jeweiligen Datenbank gespeichert Inhaltsverzeichnis 1 Allgemein 2 Implementierung 3 Extended Stored Procedure 4 Beispiele 5 Literatur 6 Weblinks 7 EinzelnachweiseAllgemein BearbeitenMittels gespeicherter Prozeduren konnen haufiger verwendete Ablaufe die sonst durch viele einzelne Befehle vom Client ausgefuhrt werden wurden auf das Datenbanksystem ausgelagert und durch einen einzigen Aufruf CALL oder EXECUTE ausgefuhrt werden siehe auch Client Server System Mitunter wird dadurch die Leistung gesteigert da weniger Daten zwischen Client und Datenbanksystem ausgetauscht werden mussen und das Datenbankmanagementsystem haufig auf leistungsfahigeren Servern lauft Neben der gewohnlichen Syntax der Abfragesprache meist SQL konnen in gespeicherten Prozeduren auch zusatzliche Befehle zur Ablaufsteuerung oder Auswertung von Bedingungen hinzugefugt werden Damit konnen 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 moglich Gespeicherte Prozeduren tragen dazu bei die Sicherheit einer Anwendung stark zu erhohen Da der Client in der Regel keine DELETE UPDATE oder INSERT Zugriffsrechte mehr benotigt ist es Angreifern nicht moglich selbst Datenbanken zu manipulieren z B durch SQL Injection Der Client hat ausschliesslich die Moglichkeit bereits vorgefertigte Prozeduren aufzurufen So konnen Softwareentwickler vermeiden dass ein ungewunschtes Verhalten von Dritten hervorgerufen werden kann In diesen Konstrukten sind SQL Injection Angriffe fast unmoglich Eine theoretische Chance besteht jedoch weiterhin Christopher Kunz PHP Sicherheit Seite 143 1 Implementierung BearbeitenDatenbanksystem ImplementierungsspracheDb2 SQL PLFirebird PSQL teilweise auch Oracles PL SQL Informix S PL 2 3 Oracle PL SQL und JavaMicrosoft SQL Server Transact SQL und diverse NET Framework SprachenMySQL MariaDB SQL 2003 4 PostgreSQL PL pgSQL und viele weitere eigene Sprachkonstrukte wie PL Tcl PL Perl oder PL PythonSQLite n v Extended Stored Procedure BearbeitenExtended Stored Procedure Abkurzung XP ist eine von Microsoft SQL erweiterte Form der Stored procedure XPs erlauben durch die Verwendung von DLLs komplexere Prozesse auszufuhren Je nach Microsoft SQL Version sind diverse erweiterte gespeicherte Prozeduren vordefiniert 5 wahrend Administratoren weitere hinzufugen konnen 6 Microsoft hat die Verwendung von XPs inzwischen als deprecated gekennzeichnet was bedeutet dass zukunftige Microsoft SQL Versionen erweiterte Prozeduren nicht mehr unterstutzen werden Microsoft SQL Server 2012 unterstutzt XPs allerdings noch Als Ersatz nennt Microsoft die Verwendung der Laufzeitumgebung Common Language Runtime 7 Beispiele BearbeitenDie folgende gespeicherte Prozedur in SQL hat zwei Parameter VorlNr PersNr vom Datentyp Integer 8 CREATE PROCEDURE GibVorlesungen VorlNr INT PersNr INT AS SELECT Vorlesung VorlNr Vorlesung Titel Professor PersNr Professor Name FROM Professor INNER JOIN Vorlesung ON Professor PersNr Vorlesung PersNr WHERE VorlNr VorlNr AND PersNr PersNr Der AufrufEXECUTE GibVorlesungen 1001 15 konnte folgendes Ergebnis zuruckgeben siehe SQL Sicht VorlNr Titel PersNr Name1001 Datenbanken 15 UrlauberLiteratur BearbeitenGuy 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 BearbeitenFirebird 2 0 Online Manual Overview of PSQL Stored Procedures Janus Software abgerufen am 25 Februar 2010 englisch Peter Gulutzan MySQL 5 0 Stored Procedures PDF 588 kB Oracle Mai 2005 abgerufen am 25 Februar 2010 englisch PostgreSQL Documentation Procedural Languages PostgreSQL Global Development Group abgerufen am 25 Februar 2010 englisch Einzelnachweise Bearbeiten Christopher Kunz Stefan Esser PHP Sicherheit PHP MySQL Webanwendungen sicher programmieren 3 Auflage dpunkt verlag Heidelberg 2008 ISBN 978 3 89864 535 5 Informix Guide to SQL Tutorial Kapitel 10 Creating amp Using SPL Routines S 371 Informix Guide to SQL Reference and Syntax Kapitel 3 SPL Statements S 901 MySQL 5 5 Reference Manual CREATE PROCEDURE and CREATE FUNCTION Syntax Oracle abgerufen am 25 Februar 2010 englisch General Extended Stored Procedures Transact SQL Microsoft MSDN Adding an Extended Stored Procedure to SQL Server Microsoft MSDN Deprecated Database Engine Features in SQL Server 2012 Microsoft MSDN Microsoft Docs Create a Stored Procedure Abgerufen von https de wikipedia org w index php title Gespeicherte Prozedur amp oldid 231634341