From 4eba780ed25ea4fbae8e032dc3510e1c083d0310 Mon Sep 17 00:00:00 2001 From: Benjamin Franzke Date: Sat, 26 Jan 2013 11:34:46 +0100 Subject: doc: Add a section about transactions as sandbox --- doc/documentation.txt | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'doc') diff --git a/doc/documentation.txt b/doc/documentation.txt index a7dba6d..eeff920 100644 --- a/doc/documentation.txt +++ b/doc/documentation.txt @@ -69,6 +69,50 @@ Für Moodle ist ein integriertes Video-Plugin verfügbar. Im SQLBox +=== Sandbox für User-Queries + +Der Nutzer der SQLBox muss bei jedem Aufruf einen konsistenen Datenbestand +vorfinden. Dazu ist es notwendig, dass Anfrage in einer Sandbox ablaufen. +Zu diesem Zweck sollen folgend verschiedene Möglichkeiten vorgestellt und +evaluiert werden. + +===== Transactions + +Eine Idee ist es, die Eingabes des Nutzers durch Transactions zu schützen, +indem vor dem Ausführen der Nutzeranfrage eine Transaction gestartet wird, +und danach diese immer zurückgerollt (=ROLLBACK) wird: + +[source,sql] +---- +# sqlbox instruction +BEGIN TRANSACTION; + +# User Input: +SELECT * FROM blub; + +# sqlbox instruction +ROLLBACK TRANSACTION; +---- + +Ein Nutzer könnte aber aus dieser Sandbox ausbrechen, in dem er die gestartet +Transaktion beendet, den Datensatz manipuliert und dann eine neue Transaction +startet: + +[source,sql] +---- +# sqlbox instruction +BEGIN TRANSACTION; + +# User Input: +INSET INTO blub VALUES (1,'foo') +COMMIT TRANSACTION; +BEGIN TRANSACTION; +SELECT * FROM blub; + +# sqlbox instruction +ROLLBACK TRANSACTION; +---- + == Literatur * Niels Weber, Diplomarbeit -- cgit