diff options
-rw-r--r-- | doc/documentation.txt | 44 |
1 files changed, 44 insertions, 0 deletions
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 |