diff options
author | Benjamin Franzke <benjaminfranzke@googlemail.com> | 2013-01-26 11:34:46 +0100 |
---|---|---|
committer | Benjamin Franzke <benjaminfranzke@googlemail.com> | 2013-01-26 11:35:11 +0100 |
commit | 4eba780ed25ea4fbae8e032dc3510e1c083d0310 (patch) | |
tree | abb597133e0f84f5b25ae05039e5e577052cb491 /doc | |
parent | 62ada070e367e4b0d29f8c6f3a017b94510b1105 (diff) | |
download | sqltutor-plugin-4eba780ed25ea4fbae8e032dc3510e1c083d0310.tar.gz sqltutor-plugin-4eba780ed25ea4fbae8e032dc3510e1c083d0310.tar.bz2 sqltutor-plugin-4eba780ed25ea4fbae8e032dc3510e1c083d0310.zip |
doc: Add a section about transactions as sandbox
Diffstat (limited to 'doc')
-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 |