6 Konzepte in der Mehrbenutzerumgebung Das erarbeitete Szenario bezieht sich auf eine Umgebung, in der mehrere Benutzer auf einen Datenbestand zugreifen. Während normale Benutzer (diejenigen, die eine Stelle ausschreiben) nur lesend auf die eingetragenen Daten und Informationen zugreifen, kann derjenige, der die Stellenausschreibung und die Daten der Bewerber in die Datenbank einpflegt auch schreibrechte besitzen. Zusätzlich muss der Administrator sämtliche Rechte auf die Datenbank besitzen. Daher sollten für die unterschiedlichen Benutzer, unterschiedliche Rechte festgelegt werden. Ferner kann ggf. über den Einsatz von Transaktionen ein Verfälschen der Daten verhindert werden, wenn gleichzeitige Zugriffe auf dieselben Daten gemacht werden. 6.1 Sicherheitskonzept Es sind drei Benutzergruppen zu identifizieren: Benutzer Verwalter und Administratoren. Die Benutzergruppen werden als „Gruppen“ auf dem SQL-Server realisiert. Hinterher werden die jeweiligen Rechte auf die Gruppen vergeben. So muss ein entsprechender Benutzer nur in der jeweiligen Gruppe auf der Datenbank eingetragen sein. Die Zuweisung der Rechte direkt auf einem Benutzer wäre zu unflexibel und zu unsicher. Das folgende Beispiel bezieht sich exemplarisch auf eine Post-Gre SQL Datenbank. Mit den folgenden SQL-Statements werden die Gruppen auf der Datenbank angelegt: CREATE GROUP administratoren; CREATE GROUP benutzer; CREATE GROUP Verwalter; Mit den folgenden SQL-Statements werden die User auf der Datenbank angelegt: CREATE USER dab_admin PASSWORD '*****' CREATEUSER CREATEDB IN GROUP administratoren; CREATE USER dab_benutzer CREATEUSER CREATEDB IN GROUP benutzer; CREATE USER dab_verwalter CREATEUSER CREATEDB IN GROUP verwalter; 6.1.1 Benutzer Benutzer haben grundsätzlich nur Leserechte auf alle Sichten. Sie dürfen nicht direkt neue Datensätze in eine Tabelle einfügen. Beispiel (exemplarisch): GRANT SELECT ON v_person TO GROUP benutzer; ... usw. Diese Funktion wuerde eine Übersicht ueber eine bestimmte Person, die in der Datenbank eingepflegt wurde, angezeigen. 6.1.2 Verwalter Verwalter muessen eingeschraenkte Schreibrechte sowie Leserechte besitzen, da sie die Daten (Stellenauschreibung und Bewerber) in die Datenbank einpflegen muessen. Beispiel (exemplarisch): GRANT SELECT ON v_staat TO GROUP verwalter; GRANT EXECUTE ON FUNCTION add_bewerber (Parameter) TO GROUP verwalter; 6.1.3 Administrator Administratoren haben vollen Zugriff auf alle festgelegten Sichten und Funktionen. In Bereichen, in denen Konsistenzprobleme auftreten können ist der Administrator jedoch gezwungen, die dafür vorgesehenen Funktionen zu nutzen. Insofern er Datensätze in eine Tabelle einfügen kann, ohne dass er dafür eine Funktion benutzt, wird davon ausgegangen, dass der Administrator weiß, was er macht. Beispiel (exemplarisch): GRANT SELECT ON v_staat TO GROUP administratoren; GRANT EXECUTE ON FUNCTION add_bewerber (Parameter) TO GROUP administratoren; ... usw. 6.2 Transaktionen Eine Transaktion nutzt eine Sperre um Änderungen an den Daten durch andere Benutzer zu verhindern, die gerade durch die Transaktion bearbeitet werden. Diese Sperre wird durch das Datenbankmanagementsystem zur Verfügung gestellt.