summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/documentation.txt44
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