Überblick Felix Naumann. Zugriffsrechte Zugriffsrechte erzeugen Zugriffsrechte prüfen Zugriffsrechte vergeben Zugriffsrechte entziehen

Ähnliche Dokumente
Kapitel 8: Zugriffskontrolle

Datenschutz: Zugriffsrechte in SQL

3.17 Zugriffskontrolle

Vorlesung Informationssysteme

Bedingungen über Werte Statische Integrität. CHECK-Klausel

Die Anweisung create table

9. Sicherheitsaspekte

Datensicherheit. 8. Datensicherheit

Datenbankadministration

6 Sicherheitskonzepte in Oracle

Benutzerverwaltung, Sichten und Datenintegrität

Datenmodelle und Datenbanken 2

Unterabfragen (Subqueries)

Username and password privileges. Rechteverwaltung. Controlling User Access. Arten von Rechten Vergabe und Entzug von Rechten DBS1 2004

Praktikum: Datenbankprogrammierung in SQL/ORACLE. Zugriffsrechte an ORACLE-Account gekoppelt initial vom DBA vergeben SCHEMAKONZEPT

Vorlesung Datenbanken

A Datendenition in SQL ( Punkte)

Datenbanksysteme I Datenbankprogrammierung Felix Naumann

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Aufgabe 1: Integrität

Datenbanksysteme 2013

6. Datendefinition und Zugriffskontrolle

Kapitel 7: Referentielle Integrität

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Datenbanksysteme I Integrität und Trigger Felix Naumann

7 DCL (Data Control Language)

Oracle 10g Einführung

Datenmanagement I SoSe 2006 Aufgabenblatt 4

<Insert Picture Here> Security-Basics. Privilegien, Rollen, SQL und PL/SQL - inkl. 12c-Update. Carsten Czarski, ORACLE Deutschland B.V. Co.

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.

Datenbanken SQL. Insert, Update, Delete, Drop. Krebs

PostgreSQL High-Security

Autorisierungsgraph mit zeitabhängiger Interpreta4on

DB2 SQL, der Systemkatalog & Aktive Datenbanken

Beispiel zur referentiellen Integrität

Kapitel 8: Datenintegrität

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99

SQL. Allgemeines CREATE TABLE DROP TABLE ALTER TABLE INSERT INTO UPADTE DELETE SELECT

7.5 Zugriffsrechte SYSTEMPRIVILEGIEN BENUTZERIDENTIFIKATION ZUGRIFFSRECHTE INNERHALB ORACLE SCHEMAKONZEPT. berechtigen zu Schemaoperationen

Datenbanken. Datenintegrität + Datenschutz. Tobias Galliat. Sommersemester 2012

Visualisierung in Informatik und Naturwissenschaften

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #5. SQL (Teil 3)

Microsoft Access 2010 SQL nutzen

Kapitel 6: Sichten und Zugriffskontrolle

Probeklausur mit Musterlösung

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr. Praktikum: Datenbanken Woche 7: Noch mehr SQL

Aufbau Datenbanksysteme

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Entwicklungsumgebung für die Laborübung

Datenbanken: Datenintegrität.

6. Trigger Charakterisierung von Triggern. 6. Trigger. Trigger definieren automatische Reaktionen auf Ereignisse, die durch Datenmanupilationen

Kapitel 9. Embedded SQL. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1

Neuerungen in Marco Patzwahl MuniQSoft GmbH Unterhaching

Übung PL/SQL Trigger Lösungen

Welche Kunden haben die gleiche Ware bestellt? select distinct a1.name, a2.name from Auftrag a1, Auftrag a2 where a1.ware = a2.ware.

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Trigger, SQL-PL

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13

SQL Data Manipulation Language (DML) und Query Language (QL)

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich

select DISTINCT Name, ort From Verkauf; selektiert Name und Ort von Tabelle Verkauf - DISTINCT steht dass keine Zeile mehrfach vorkommt

Introduction to Data and Knowledge Engineering. 6. Übung SQL

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

SQL,Teil 1: CREATE, INSERT, UPDATE, DELETE, DROP

6. Sichten, Integrität und Zugriffskontrolle. Vorlesung "Informa=onssysteme" Sommersemester 2015

1 Referentielle Aktionen

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13

Datenbank- und Informationssysteme - Übungsblatt 6 -

5.3 Datenänderung/-zugriff mit SQL (DML)

Übung 2. Verwendung eines RDBMS. Prof. Dr. Andreas Schmietendorf 1. Übung 2

Folien php/mysql Kurs der Informatikdienste

Tag 4 Inhaltsverzeichnis

Grundlagen der Informatik 2

Wiederholung VU Datenmodellierung

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL

Views in SQL. 2 Anlegen und Verwenden von Views 2

5.8 Anwendungsorientierte Schutzsysteme

Ergänzungen zur Vorlesung Informationssysteme WS 2000/01

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Datenmodelle und Datenbanken 2

Datenbanken. Zusammenfassung. Datenbanksysteme

Webbasierte Informationssysteme

Relationales Datenbanksystem Oracle

Oracle: Abstrakte Datentypen:

Konzeptueller Entwurf

Datenbanksysteme I Übung: JDBC. Jana Bauckmann

Datenbankadministration Projekt 2: Autorisierung, Nutzerverwaltung und Rechtevergabe

Übung 7 DBMS-FUNKTIONALITÄTEN UND DATENIMPORT

Sicherheitsaspekte. Szenarien. Angriffsarten. Discretionary Access Control. Sicherheit im DBMS. Identifikation und Authentisierung

Die Spalte Prüfung und die Spalte Name enthielten mengenwertige Attribute. Zerlegung der Spalten in: Name, Vorname UND PrüfID, Prüfnote

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

View. Arbeiten mit den Sichten:

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

Kapitel 5: Sortieren, Gruppieren und Views in SQL

SQL. Datenmanipulation. Datenmanipulationssprache. Ein neues Tupel hinzufügen. Das INSERT Statement

Transkript:

Datenbanksysteme I Zugriffskontrolle (kleiner Einschub) 18.1.2007 Felix Naumann Überblick 2 Zugriffsrechte Zugriffsrechte erzeugen Zugriffsrechte prüfen Zugriffsrechte vergeben Zugriffsrechte entziehen 1

Grundaufbau 3 SQL geht von Authorization IDs aus Einzelne Nutzer logins Nutzergruppen Zugriffsrechte werden für einzelne Authorization IDs vergeben. Dimensionen der Rechte Wer? (Authorization ID) Nutzername Was? (Operation) read, write, Wofür? (Datenbankobjekt) Relation, Attribut, Schema, Sicht, Zugriffsrechte 4 UNIX definiert drei Arten von Zugriffsrechten read, write, execute SQL definiert neun Arten von Zugriffsrechten (privileges) 1. SELECT Anfragen auf Tabelle oder Sicht erlaubt Kann mit Attributliste weiter eingeschränkt werden 2. INSERT Einfügen von Tupeln auf Tabelle (oder Sicht) erlaubt Kann mit Attributliste weiter eingeschränkt werden 3. DELETE Löschen von Tupeln auf Tabelle (oder Sicht) erlaubt 4. UPDATE Verändern von Tupeln auf Tabelle (oder Sicht) erlaubt Kann mit Attributliste weiter eingeschränkt werden 5. REFERENCES Relation in einer Integritätsbedingung verwenden Kann auf Attributliste eingeschränkt werden 6. USAGE Für Schemata 7. TRIGGER Erlaubt die Definition von Triggern auf einer Relation 8. EXECUTE Erlaubt ein Stück Code (procedure, function) auszuführen 9. UNDER Erlaubt Subtypen zu erstellen Nicht in dieser VL 2

Zugriffsrechte - Beispiel 5 INSERT INTO Studios(Name) SELECT DISTINCT StudioName FROM Filme WHERE StudioName NOT IN (SELECT Name FROM Studios); Welche Rechte werden benötigt? INSERT für Studios INSERT(Name) wäre ausreichend SELECT für Filme SELECT(StudioName) wäre ausreichend SELECT für Studios SELECT(Name) wäre ausreichend Zugriffsrechte erzeugen 6 Zu jedem Datenbankelement existiert ein Besitzer (owner). Drei Arten der Erzeugung von Zugriffsrechten Erzeugung eines Schemas: Der Erzeuger eines Schemas ist zugleich Besitzer des Schemas und aller darin liegenden Elemente (Relationen, Trigger, ). Erstellen einer DB Verbindung (session): CONNECT TO meindb2 AS connection1 AUTHORIZATION ; Passwort! Später: DISCONNECT connection1 Erzeugung eines Moduls (PSM Programm) Option AUTHORIZATION 3

Zugriffsrechte prüfen 7 Jede SQL Operation betrifft zwei Dinge Eine Menge von Datenbankelementen Den Auslöser der Operation hat aktuelle Autorisierungs ID ; entweder Modul AutorisierungsID Verbindungs-AutorisierungsID (session) SQL Operation wird nur ausgeführt falls aktuelle AutorisierungsID alle nötigen Zugriffsrechte besitzt. Beispiel 8 INSERT INTO Filmschema.Studios(Name) SELECT DISTINCT StudioName FROM Filmschema.Filme WHERE StudioName NOT IN (SELECT Name FROM Filmschema.Studios); n besitzt FilmSchema Alle Zugriffsrechte für die beiden Relationen und alle anderen Elemente im Schema Varianten, die Ausführung ermöglichen 1. Einfügeoperation als Teil eines Moduls, das durch erzeugt wurde und das die Option AUTHORIZATION enthält. Aktuelle AutorisierungsID ist AutorisierungsID des Moduls. Modul und Operation haben gleiche Zugriffsrechte wie. 2. Einfügeoperation als Teil eines Moduls, das keinen Besitzer hat. verbindet sich mit CONNECT TO filmdb AUTHORIZATION Aktuelle AutorisierungsID ist. 3. vergibt alle Zugriffsrechte für Tabellen Filme und Studios an Nutzer (oder an Nutzer PUBLIC) Operation Teil eines Moduls mit AUTHORIZATION Aktuelle AutorisierungsID ist. 4. vergibt alle Zugriffsrechte für Tabellen Filme und Studios an Nutzer (oder an Nutzer PUBLIC) Operation aus einer Verbindung mit AUTHORIZATION Aktuelle AutorisierungsID ist. 4

Prinzipien zur Prüfung von Zugriffsrechten 9 1. Falls Schemaelemente vom Nutzer besessen werden, der die aktuelle AutorisierungsID hält, kann Operation ausgeführt werden. Fälle 1 und 2 im Beispiel 2. Falls der Nutzer, der die aktuelle AutorisierungsID hält, entsprechende Rechte zugewiesen bekommen hat, kann die Operation ausgeführt werden. Fälle 3 und 4 im Beispiel 3. Ausführung eines Moduls, das besessen wird von Besitzer der Daten oder von jemanden, der die Rechte zugewiesen bekommen hat, ist möglich. EXECUTE Zugriffsrecht auf Modul ist nötig Fälle 1 und 3 im Beispiel 4. Ausführung eine öffentlich verfügbaren Moduls aus einer Verbindung eines Nutzer mit entsprechenden Zugriffsrechten erlaubt Ausführung der Operation. Fälle 2 und 4 im Beispiel Zugriffsrechte vergeben 10 GRANT Befehl in SQL Erzeugt Kopie eines Zugriffsrechts (Vergeber behält gleiches Zugriffsrecht) Aber mit Kopierschutz: nur WITH GRANT OPTION erlaubt die Weitervergabe GRANT <Zugriffsrechteliste> ON <Datenbankelement> TO <Nutzerliste> WITH GRANT OPTION GRANT ALL PRIVILEGES ON <Datenbankelement> TO <Nutzerliste> WITH GRANT OPTION Voraussetzungen zu Ausführung des GRANT Befehls Ausführer muss selbst alle entsprechenden Rechte haben Oder allgemeinere Rechte: INSERT Studios vs. INSERT Studios(Name) Ausführer muss diese Rechte WITH GRANT OPTION haben. 5

Zugriffsrechte vergeben Beispiel 11 Nutzer führt aus GRANT SELECT, TO, WITH GRANT OPTION; GRANT TO, WITH GRANT OPTION; Nutzer führt aus GRANT SELECT, TO ; GRANT TO ; Mueller führt aus GRANT SELECT, INSERT(Name) ON Studios TO ; GRANT To ; Überblick mittels eines GRANT-Diagramms GRANT-Diagramm 12 Überblick über Netz aus Nutzern und Rechten Visualisierung dessen, was ein DBMS speichert Datenstruktur Knoten speichert ein Paar: (Nutzer, Zugriffsrecht) WITH GRANT OPTION gesondert darstellen Kanten speichern Vergabe des Zugriffsrechts 6

GRANT-Diagramm Beispiel 13 INSERT ON Filme Besitzer WITH GRANT OPTION Einfaches Zugriffsrecht INSERT(Name) ON Studios Fnaumann:GRANT SELECT, TO, WITH GRANT OPTION; GRANT TO, WITH GRANT OPTION; Meier: GRANT SELECT, TO ; GRANT TO ; Mueller: GRANT SELECT, INSERT(Name) ON Studios TO ; GRANT To ; Zugriffsrechte entziehen 14 REVOKE <Zugriffsrechtliste> ON <DB-Element> FROM <Nutzerliste> CASCADE Entzug kaskadiert: Alle Rechte, die einzig aufgrund des nun entzogenen Rechtes vergeben wurden. Jeder Knoten muss von einem Besitzerknoten erreichbar sein. REVOKE <Zugriffsrechtliste> ON <DB-Element> FROM <Nutzerliste> RESTRICT REVOKE wird nicht ausgeführt falls es kaskadierende Auswirkungen hätte. REVOKE GRANT OPTION FOR <DB-Element> FROM <Nutzerliste> CASCADE RESTRICT 7

Zugriffsrechte entziehen - Beispiel 15 INSERT ON Filme Besitzer WITH GRANT OPTION Einfaches Zugriffsrecht INSERT(Name) ON Studios führt aus REVOKE SELECT, FROM CASCADE; REVOKE FROM CASCADE; Zugriffsrechte entziehen - Spezialfälle 16 Entzug eines allgemeinen Zugriffsrechts entzieht nicht ein spezielleres Zugriffsrecht GRANT INSERT ON Filme TO GRANT INSERT(Titel) ON Filme TO REVOKE INSERT ON Filme FROM RESTRICT behält Schreibrecht INSERT(Titel) Eigener Knoten im GRANT-Diagramm Entzug der GRANT-Option : GRANT TO WITH GRANT OPTION : GRANT TO : REVOKE GRANT OPTION FÜR FROM CASCADE verliert ebenfalls die Zugriffsrechte 8

Zugriffsrechteverwaltung in der DB2 Steuerungszentrale 17 9