Einführung in Datenbanksysteme Benutzungsbereich: Benutzertypen Ein Benutzer ist jeder, der etwas mit der Datenbank zu tun hat: Endbenutzer, Entwickler, Administrator traditionell drei Gruppen: Endbenutzer: gelegentlich, einfache Oberfläche, kleinere Aufgaben Anwendungsentwickler: Entwicklung von Anwendngssystemen Administratoren: systemnahe oder anwendungsnahe Verwalter, Operatoren SQL-artig (Oracle) - create user, change user, drop user - grant { connect | resource | dba } to meier identified by z97d - grant select on person to meier Ablauf: - Superuser wird bei Installation festgelegt. - Superuser legt Datenbankadministratoren an. - Jeder Datenbankadministrator legt seine Mitarbeiter-User an (resource, connect). (2) Windows like (Access) visuell mit Menü, Tabelle, Ankreuzen: ->Menü->Zugriffsrechte->neu: Name, Passwort, Gruppe ->Menü->Zugriffsrechte->Gruppe: neu ->Menü->Zugriffsrechte->Berechtigungen Die Benutzer eines Datenbanksystems befinden sich in dem Bereich zwischen EDV-Abteilung und Anwender-/Fachabteilung. Sie unterscheiden sich nach Breite und Tiefe. EDV-Abteilung Fachabteilung Endbenutzer (Betriebsphase) Benutzerservice (Betriebsphase) Anwendungsprogrammierer (Einführungsphase, Betriebsphase, Änderungsphase) Systemanalytiker (Planungsphase) Datenbankadministrator (Einführungsphase, Betriebsphase, Änderungsphase) DB-Operating (Betriebsphase) BEUTH/Steyer Einführung in Datenbanksysteme Benutzungsbereich: Benutzersicht (VIEW) Es soll jeder nur das sehen, was er braucht und darf. Definition : benutzerdefiniertes Fenster, spaltenweise, zeilenweise, virtuell, joined Zweck : Datenschutz und Übersichtlichkeit Realisierung: Speicherung der Definition, Und-Verknüpfung mit jedem Befehl, der den Benutzersichtnamen verwendet Probleme : kostet das System etwas Mehrarbeit, bringt manchmal kryptische Fehlermeldungen Beispiel fremdsprachige Benutzersicht deutsche Basistabelle Benutzungsbereich: Privilegien Es darf nicht jeder alles überall sehen und tun. Definition : permanente (längerdauernde) Zugriffskontrolle bzgl. - welche Aktion auf welchem Objekt wer Zweck : Zugriffsschutz, Datensicherheit Realisierung : Planung in der Zeit der Systemanalyse, Schulung Privilegientabelle, die als Filter für jedes Kommando fungiert Probleme : kleine Verzögerung immer Die Oberflächen werden immer "höher", d.h. entfernen sich immer mehr vom DBMS. Die Benutzer werden immer datenbankunausgebildeter. SQL verschwindet in den Tiefen der Systeme, bleibt aber als funktionaler Standard erhalten. meier Tab1 form1 BEUTH/Steyer Operationen (select, insert, update, delete, definieren, benutzen) x x Einführung in Datenbanksysteme Benutzungsbereich: Sperren Es dürfen nicht alle alles gleichzeitig machen. Es gibt zwei Arten: exclusive: verbietet anderen Lesen und Schreiben, shared: erlaubt wenigstens paralleles Lesen SQL-artig (Oracle, 1989) einzeln: lock table person in share mode lock row with pid = 4711 in person in exclusive mode oder neuer (1992): isolation levels 0 read uncommitted (ungesperrt) 1 read committed (1 Zeile kurz gesperrt, Beispiel Umbuchung) 2 repeatable read (1 Zeile länger gesperrt, Beispiel Gehaltserhöhung) 3 cursor stability (Ergebnismenge gesperrt) entscheidend sind also die Sperrbereiche und die Sperrdauer Windows like (Access): Beim Öffnen schon ist ankreuzbar: gemeinsam oder exklusiv. Sperrstrategie kann eingestellt werden: Aber die Granularität ist grob. Definition Zweck Realisierung : temporäre (kürzerdauernde) Zugriffskontrolle - "exclusive" verbietet anderen Lesen und Schreiben - "shared" erlaubt wenigstens paralleles Lesen : operationale Datensicherheit : Sperrliste, die als Filter für jedes Kommando fungiert Probleme : langes Warten evtl. oder gar Deadlock BEUTH/Steyer