From 7a19e2ba6089c7b5143f5da743a4156a64d4946b Mon Sep 17 00:00:00 2001 From: Benjamin Franzke Date: Thu, 31 Jan 2013 00:23:11 +0100 Subject: doc: Fix style in user seperation --- doc/documentation.txt | 98 ++++++++++++++++++++++++++------------------------- 1 file changed, 50 insertions(+), 48 deletions(-) diff --git a/doc/documentation.txt b/doc/documentation.txt index 1709a32..2108ace 100644 --- a/doc/documentation.txt +++ b/doc/documentation.txt @@ -60,6 +60,8 @@ Der Name ist gebildet als Akronym aus ``Modular Object-Oriented Dynamic Learning Environment''. Die im Namen bereits festgehalten Modularität kann genutzt werden um die Lernplattform um kursspezifische Aktivitäten zu erweitern. +Zur Entwicklung dieses Projekts wurde Moodle in der Version 2.4 eingesetzt. + === Videos einbinden Im Rahmen der Lehre von Datenbanken, ist eine attraktive Möglichkeit, die @@ -139,22 +141,22 @@ von XML in SQL Befehle transformiert. === Separierung von Benutzern -Der Benutzer der SQLBox muss bei jedem Aufruf einen konsistenen Datenbestand +Der Benutzer der SQLBox muss bei jedem Aufruf einen konsistenten Datenbestand vorfinden. Da es dieses System einem Benutzer gestattet reale Anfragen an eine reale -Datenbank zu stellen, koennte dieser den Bestand der Datenbank veraendern oder -beschaedigen. -Zudem koennen Aufgaben welche das Erstellen oder gezielte Veraendern von -Tabellen nur einem einem Benutzer erfuellt werden. -Aus diesem Grund ist es notwendig, dass Anfrage von der verschiedenen Benutzer -von einander trennen werden. -In den Folgenden Abschnitten werden verschieden Moeglichkeiten diskutiert und -bewertet, die Trennung der Benutzer erlauben. +Datenbank zu stellen, könnte dieser den Bestand der Datenbank verändern oder +beschädigen. +Zudem können Aufgaben welche das Erstellen oder gezielte Verändern von +Tabellen zum Ziel haben, nur einem einem Benutzer erfüllt werden. +Aus diesem Grund ist es notwendig, dass die Anfragen von den verschiedenen +Benutzern, von einander trennen werden. +In den Folgenden Abschnitten werden verschieden Möglichkeiten diskutiert und +bewertet, die die Trennung der Benutzer erlauben. -==== Transactions +==== Transaktionen Eine Idee ist es, die Eingaben des Nutzers durch Transaktionen zu schützen, -indem vor dem Ausführen der Nutzeranfrage eine Transaktion gestartet wird, +indem vor dem Ausführen der Nutzeranfrage eine Transaktion gestartet, und danach diese immer zurückgerollt (=ROLLBACK) wird: [source,sql] @@ -169,9 +171,9 @@ SELECT * FROM blub; ROLLBACK TRANSACTION; ---- -Ein Nutzer könnte aber aus dieser Sandbox ausbrechen, in dem er die gestartet +Ein Nutzer könnte aber aus dieser ``Sandbox'' ausbrechen, in dem er die gestarte Transaktion beendet, den Datensatz manipuliert und dann eine neue Transaktion -startet: +startet, wodurch es nicht einmal zu einer Warnung vom Datenbank-Server kommt: [source,sql] ---- @@ -188,43 +190,43 @@ SELECT * FROM blub; ROLLBACK TRANSACTION; ---- -Dieses Verfahren wuerden einen normalen Betrieb ermoeglichen, indem Fehlerhafte +Dieses Verfahren würde einen normalen Betrieb ermöglichen, indem Fehlerhafte SQL-Anfragen wieder behoben werden. -Es biete aber die Moeglichkeit der gezielten Stoerung durch boeswillige +Es bietet aber die Möglichkeit der gezielten Störung durch böswillige Benutzer. -Diese koennte alle Tests unbrauchbar machen und damit einen normalen Lernbetrieb +Dies könnte alle Tests unbrauchbar machen und damit einen normalen Lernbetrieb verhindern. ==== Separate Datenbank -Um die Anfragen der Nutzer von einander zu trennen, gibt es ebenfalls die -Moeglichkeit jedem Nutzer eine eigene Datenbank zur Verfuegung zu stellen. -Somit koennte der Nutzer in den Test-Szenarien umfassende Aenderungen an der -Datenbank vornehmen, ohne andere Nutzer dabei zu beeintraechtigen. -Die Uebungen koennen dann nach einander so konstruiert werden, dass der Nutzer -die Datenbank in eine bestimmte Richtung hin veraendert. +Um die Anfragen der Nutzer von einander zu trennen, gibt es weiterhin die +Möglichkeit jedem Nutzer eine eigene Datenbank zur Verfügung zu stellen. +Somit könnte der Nutzer in den Test-Szenarien umfassende Änderungen an der +Datenbank vornehmen, ohne andere Nutzer dabei zu beeinträchtigen. +Die Übungen können dann nach einander so konstruiert werden, dass der Nutzer +die Datenbank in eine bestimmte Richtung hin verändert. -Der groesste Nachteil liegt im erheblichen Verwaltungsaufwand. -Es muss bestimmt werden fuer welche Moodle-Nutzer eine Datenbank angelegt wird. -Zudem muss es Moeglichkeiten geben, die Datenbanken wieder zurueckzusetzen, +Der grösste Nachteil liegt im erheblichen Verwaltungsaufwand. +Es muss bestimmt werden für welche Moodle-Nutzer eine Datenbank angelegt wird. +Zudem muss es Möglichkeiten geben, die Datenbanken wieder zurückzusetzen, sollte ein Nutzer die Datenbank in einen Zustand bringen, der keine erfolgreichen Test mehr erlaubt. -Dabei muesste geklaert sein, in welchem Zustand diese geschehen muesste. -Entweder in einen Zustand indem der Nutzer an der naechsten noch offenen Aufgabe +Dabei müsste geklärt sein, zu welchem Zustand diese Rücksetzung geschehen müsste. +Entweder in einen Zustand indem der Nutzer an der nächsten noch offenen Aufgabe weiter arbeiten kann, oder in eine Grundzustand, bei dem der Nutzer alle -Aufgaben von neuem erfuellen muss. -Alle diese Massnahmen wuerden den Entwicklungsaufwand enorm steigern. +Aufgaben von neuem erfüllen muss. +Alle diese Maßnahmen würden den Entwicklungsaufwand enorm steigern. ==== Keine Schreibrechte Im einfachsten Fall, bekommen die Nutzer nur Lese-Rechte auf die Datenbank. -Dieses hat den Vorteil, dass der Verwaltungsaufwand fuer das Modul, sowie +Dieses hat den Vorteil, dass der Verwaltungsaufwand für das Modul, sowie der Speicherbedarf der Datenbank verringert wird. -Mit dieser Variante, lassen sich hingegen nur +SELECT+-Anfragen stellen. -Andere wichtige Anfragen, wie +UPDATE+, +DELETE+, +CREATE+ und +ALTER+ koennten +Mit dieser Variante lassen sich hingegen nur +SELECT+-Anfragen stellen. +Andere wichtige Anfragen, wie +UPDATE+, +DELETE+, +CREATE+ und +ALTER+ könnten dann nicht innerhalb mit der SQLBox erprobt werden. -Dazu wird mit einem priviligierten Account ein Nutzer angelegt, der für die +Dazu wird mit einem privilegiertem Account ein Nutzer angelegt, der für die Datenbank nur Leserechte, also für +SELECT+, besitzt: [source,sql] @@ -237,31 +239,31 @@ GRANT ==== Fazit -Transaktionen koennten das Risiko von fehlerhafen Anfragen fuer die Datenbank +Transaktionen könnten das Risiko von fehlerhaften Anfragen für die Datenbank stark reduzieren. -Da dieser Mechanismuss aber keinen Schutz vor gezielten Manipulationen bietet, -ist er fuer eine Lernplattform mit vielen unbekannten Nutzern ungeeignet. +Da dieser Mechanismus aber keinen Schutz vor gezielten Manipulationen bietet, +ist er für eine Lernplattform mit vielen unbekannten Nutzern ungeeignet. -Separate Datenbanken fuer Benutzer bieten eine sehr gute Trennung und verhindern +Separate Datenbanken für Benutzer bieten eine sehr gute Trennung und verhindern eine direkte gegenseitige Beeinflussung. Der Entwicklungsaufwand des Moodle-Moduls und die genutzten Ressourcen der -Datenbank im Betrieb sind zu hoch im Verhaeltniss der anderen Loesungen. -Aus disem Grund kommt diese Loesung unter den Umstaenden dieses Projekte nicht +Datenbank im Betrieb sind zu hoch im Verhältnis der anderen Lösungen. +Aus diesem Grund kommt diese Lösung unter den Umständen dieses Projekte nicht in Betracht. -Eine Read-Only-Loesung indem es den Benutzern nur erlaubt wird +SELECT+-Anfragen -zustellen schraenkt die Vielfalt der Aufgabenmoeglichkeiten ein, aber bietet -sichere Trennung der Benutzer sowie einen geringen Entwicklungsaufwand fuer das +Eine Read-Only-Lösung indem es den Benutzern nur erlaubt wird +SELECT+-Anfragen +zustellen schränkt die Vielfalt der Aufgabenmoeglichkeiten ein, aber bietet +sichere Trennung der Benutzer sowie einen geringen Entwicklungsaufwand für das Modul. -Da er Hautpfokus beim Erlernen der SQL-Sprache auf den verschiedensten -Moeglichkeiten von Anfragen liegt und das Anlegen von Tabelle und Spalten im -Vergleich eher nebensaechlich zubetrachten ist, stellt sich diese Loesung am -geeignetsten fuer das Problem der Benutzertrennung unter den aktuellen -Umstaenden da. +Da der Hauptfokus beim Erlernen der SQL-Sprache auf den verschiedensten +Möglichkeiten von Anfragen liegt und das Anlegen von Tabellen und Spalten im +Vergleich eher nebensächlich zu betrachten ist, stellt sich diese Lösung am +geeignetsten für das Problem der Benutzertrennung unter den aktuellen +Umständen da. == Installation -Das Modul verzeichnis (+sqlbox/+ im Projektordner) muss zunächst auf den Server +Das Moodle-Modul (+sqlbox/+ im Projektordner) muss zunächst auf den Server in das Modulverzeichnis (+mod+) der Moodle-Installation kopiert werden: [source,sh] -- cgit