Autorisierungsgraph mit zeitabhängiger Interpreta4on § Der Entzug eines Rechtes ergibt einen Schutzzustand, als wenn das Recht nie erteilt worden wäre. • Vergabe von Zeitstempeln für jedes Zugriffsrecht bei Autorisierung • Zykel und "Duplikate" (mit versch. Zeitstempeln) möglich • Bei GRANT OPTION: nachfolgende GRANTs wären zum gleichen Zeitpunkt mglw. gescheitert § Beispiel 10 : A: GRANT INSERT, UPDATE ON Pers TO C WITH GRANT OPTION 20 : C: GRANT UPDATE ON Pers TO D WITH GRANT OPTION 30 : D: GRANT UPDATE ON Pers TO E WITH GRANT OPTION 40 : B: GRANT SELECT, UPDATE ON Pers TO C WITH GRANT OPTION 50 : C: GRANT UPDATE ON Pers TO D WITH GRANT OPTION 60 : E: GRANT UPDATE ON Pers TO C WITH GRANT OPTION 70 : A: REVOKE INSERT, UPDATE ON Pers FROM C CASCADE Informa4onssysteme 2015 Kapitel 6. Sichten, Integrität und Zugriffskontrolle 69 Autorisierungsgraph mit zeitabhängiger Interpreta4on (2) § Verfahren für "X: REVOKE R FROM Y CASCADE" • Löschen der Kante(n) für R von X à Y • Falls Y Recht R noch aus anderen Quellen hält, - bes4mme kleinsten Zeitstempel minTS für diese Recht für Y - lösche aus Y ausgehende Kanten für R mit TS < minTS (à REVOKE ... CASCADE) • sonst: lösche alle aus Y ausgehende Kanten für R (à REVOKE ... CASCADE) § Beispiel: 70 : A: REVOKE INSERT, UPDATE ON Pers FROM C CASCADE Autorisierungsgraph vor Ausführung des REVOKE A 10 : I, U, GO 50 : U, GO C: minTS(I) = 10 C C: minTS(U) = 10 20 : U, GO D C: minTS(S) = 40 30 : U, GO B Informa4onssysteme 2015 40 : S, U, GO 60 : U, GO Kapitel 6. Sichten, Integrität und Zugriffskontrolle E 70 Autorisierungsgraph mit zeitunabhängiger Interpreta4on § Der rekursive Entzug eines Rechtes wird nicht fortgesetzt, sobald der Geber noch mindestens ein gleiches Recht für das Objekt von einer unabhängigen Quelle hat. è Erfordert Überprüfung der Quellenunabhängigkeit § Beispiel A: GRANT INSERT, UPDATE ON Pers TO C WITH GRANT OPTION C: GRANT UPDATE ON Pers TO D WITH GRANT OPTION D: GRANT UPDATE ON Pers TO E WITH GRANT OPTION B: GRANT SELECT, UPDATE ON Pers TO C WITH GRANT OPTION C: GRANT UPDATE ON Pers TO D WITH GRANT OPTION Weitere Vergabe E ist keine unabhängige Quelle! E: GRANT UPDATE ON Pers TO C WITH GRANT OPTION (Zykel im Graph) A I, U, GO U, GO C D U, GO S, U, GO U, GO B E Rücknahme A: REVOKE INSERT, UPDATE ON Pers FROM C CASCADE B: REVOKE SELECT, UPDATE ON Pers FROM C CASCADE Informa4onssysteme 2015 Kapitel 6. Sichten, Integrität und Zugriffskontrolle 71 Alterna4ven bei zeitunabhängiger Interpreta4on § Alterna4ve 1 • Verbot von Zyklen (abhängigen Quellen) im Autorisierungsgraph • beim REVOKE CASCADE muss nur geprüi werden, ob noch eingehende Kanten exis4eren. In dem Fall wird der Rechteentzug nicht fortgesetzt. § Alterna4ve 2 (auch im SQL-­‐Standard gefordert) • der Besitzer eines Objekt wird ausgezeichnet, bei ihm beginnt die Rechtevergabe • beim REVOKE CASCADE wird geprüi, ob noch ein Pfad vom Besitzer zum Knoten exis4ert. Dann wird der Rechteentzug nicht fortgesetzt. § Beispiel zu Alterna4ve 2 (mit Besitzer A) A I, U, GO U, GO C D S, I, U, D, GO U, GO S, U, GO U, GO B E Rücknahme A: REVOKE INSERT, UPDATE ON Pers FROM C CASCADE B: REVOKE SELECT, UPDATE ON Pers FROM C CASCADE Informa4onssysteme 2015 Kapitel 6. Sichten, Integrität und Zugriffskontrolle 72 Verfeinerungen des Autorisierungsmodells § Implizite Autorisierung • hierarchische Anordnung von Subjekten, Objekten und Opera4onen • explizite Autorisierung auf einer Hierarchiestufe bewirkt implizite Autorisierungen auf anderen Hierarchiestufen § Nega4ve Autorisierung • stellt ein Verbot des Zugriffs (¬p) dar • kann explizit und implizit erfolgen § Schwache Autorisierung • kann als Standardeinstellung verwendet werden (Leserecht eines Objektes für gesamte Gruppe, die aus Teilgruppen besteht) • erlaubt Überschreibung durch starkes Verbot (Teilgruppe erhält explizites Leseverbot) • Schreibweise: [ . . . ] Informa4onssysteme 2015 Kapitel 6. Sichten, Integrität und Zugriffskontrolle 73 Verfeinerungen des Autorisierungsmodells (2) § Autorisierungsalgorithmus wenn es eine explizite oder implizite starke Autorisierung (o, s, p) gibt, dann erlaube die Opera4on wenn es eine explizite oder implizite starke nega4ve Autorisierung (o, s, ¬p) gibt dann verbiete die Opera4on ansonsten wenn es eine explizite oder implizite schwache Autorisierung [o, s, p] gibt, dann erlaube die Opera4on wenn es eine explizite oder implizite schwache nega4ve Autorisierung [o, s, ¬p] gibt, dann verbiete die Opera4on sonst verbiete die Opera4on Informa4onssysteme 2015 Kapitel 6. Sichten, Integrität und Zugriffskontrolle 74 Verfeinerungen des Autorisierungsmodells (3) § Implizite Autorisierung von Subjekten • Einführung von Rollenhierarchien • zwei ausgezeichnete Posi4onen - eine eindeu4ge Rolle mit der maximalen Menge an Rechten (z.B. Präsident, Systemadministrator) Präsident - eine eindeu4ge grundlegende Rolle (z.B. Angestellter, Hiwi) Dekan Professor wissenschaftlicher Angestellter Abteilungsleiter Verwaltungsangestellter Angestellter § Explizite posi4ve Autorisierung è implizite posi4ve Autorisierung auf allen höheren Hierarchiestufen § Explizite nega4ve Autorisierung è implizite nega4ve Autorisierung auf allen niedrigeren Hierarchiestufen Informa4onssysteme 2015 Kapitel 6. Sichten, Integrität und Zugriffskontrolle 75 Rollenkonzept in SQL § Rollenkonzept • bisher: (explizite) Zuordnung von Zugriffsrechten zu Benutzern • SQL:1999 erlaubt die Defini4on von Rollen • Ziel: Vereinfachung der Defini4on und Verwaltung komplexer Mengen von Zugriffsrechten - Erzeugung von Rollen und Vergabe von Zugriffsrechten (Autorisierungen) - Kontrolle der Ak4vitäten (Einhaltung der vorgegebenen Regeln) Informa4onssysteme 2015 Kapitel 6. Sichten, Integrität und Zugriffskontrolle 76 Rollenkonzept in SQL (2) § Wich4ge Rollen (nicht standardisiert!) • Systemadministrator - Sie „besitzt“ sämtliche Ressourcen des DBS und ist zur Ausführung einer jeden DB-­‐Anweisung autorisiert. - Rolle verwaltet eine DBS-­‐Instanz, die mehrere DBS umfassen kann. - Bei DB2/UDB gibt es beispielsweise zwei Untergruppen: Systemkontrolle und Systemwartung. • DB-­‐Administrator - Rolle gilt für eine spezielle DB mit allen Zugriffsrechten. • Anwendungsentwickler - typische Zugriffsrechte: Verbindung zur DB herstellen (CONNECT), Tabellen erzeugen, AWPs an DB binden - Zugriffsrechte beziehen sich auf Menge spezieller DB-­‐Objekte. - Kapselung von Rechten durch AWP bei sta4schem SQL • Endbenutzer - Rechte für Ad-­‐hoc-­‐Anfragen - CONNECT-­‐ und EXECUTE-­‐Rechte für AWPs Informa4onssysteme 2015 Kapitel 6. Sichten, Integrität und Zugriffskontrolle 77 Rollenkonzept in SQL (3) § Defini4on von Rollen • CREATE ROLE Revisor CREATE ROLE Hauptrevisor § Vergabe von Rechten • GRANT INSERT ON TABLE Budget TO Revisor § Zuweisung GRANT role-granted-commalist TO grantee-commalist von Rollen [WITH ADMIN OPTION] • Rollen werden Benutzern und Rollen explizit zugewiesen. è Zuweisung von Rollen an Rollen ermöglicht implizite Vergabe! • WITH ADMIN OPTION erlaubt die Weitergabe von Rollen. • Beispiel: GRANT Revisor TO Weber WITH ADMIN OPTION § Entzug REVOKE [ADMIN OPTION FOR] role-revoked-commalist von Rollen FROM grantee-commalist {RESTRICT | CASCADE} • Beispiele REVOKE Revisor FROM Weber RESTRICT REVOKE ADMIN OPTION FOR Revisor FROM Weber CASCADE • WITH ADMIN OPTION ist „vorsich4g” einzusetzen Informa4onssysteme 2015 Kapitel 6. Sichten, Integrität und Zugriffskontrolle 78 Rollenkonzept in SQL (4) § Anwendung • Momentaner Rechtebesitz Revisor : P1, P2, P5 Hauptrevisor : P3, P4 Benutzer Schmidt : P1 P1 P2 P3 P4 P5 P6 Revisor ✔︎ ✔ Hauptrevisor Schmidt ✔ ✔ ✔ ✔ § Auswirkung folgender Opera4onen • Zuweisung von Rollen GRANT Revisor TO Hauptrevisor WITH ADMIN OPTION • „A role can contain other roles”! GRANT Hauptrevisor TO Schmidt • Evolu4on von Rollen Grant P6 ON TABLE X TO Revisor è Wer bekommt aktuell P6? • Entzug von Rollen Revoke Revisor FROM Hauptrevisor RESTRICT Revoke Revisor FROM Hauptrevisor CASCADE è Implemen4erung der Rollenvergabe erfolgt sinnvollerweise referenziert und nicht materialisiert! Informa4onssysteme 2015 Kapitel 6. Sichten, Integrität und Zugriffskontrolle 79 Zusammenfassung Datenschutz & Zugriffskontrolle § Aufeinander abges4mmte Sicherheitskonzepte sind wesentlich • Zugangskontrolle • starke Verfahren zur Authen4sierung • kryptographische Maßnahmen zur Datenübertragung • Isola4on der Prozesse • Prinzip der Zugriffskontrolle: Least Privilege Principle • Sicherungsanforderungen gelten allgemein in Rechensystemen und insbesondere zwischen Anwendung und DBS è Das „schwächste Glied“ in der Kexe der Sicherheitsmaßnahmen bes4mmt die Sicherheit des Gesamtsystems! § Zugriffskontrolle in DBS • wertabhängige Festlegung der Objekte (Sichtkonzept) • Vielfalt an Rechten erwünscht • zentrale vs. dezentrale Rechtevergabe • verschiedene Entzugsseman4ken bei dezentraler Rechtevergabe • Rollenkonzept: vereinfachte Verwaltung komplexer Mengen von Zugriffsrechten Informa4onssysteme 2015 Kapitel 6. Sichten, Integrität und Zugriffskontrolle 80 Katalog, Schema und Metadaten in SQL § SQL-­‐Umgebung (environment) besteht aus • einer Instanz eines DBMS zusammen mit • einer Menge von Daten in Katalogen (als Tabellen organisiert) • einer Reihe von Nutzern (authoriza4on iden4fiers) und Programmen (modules) § Wich4ge Elemente der SQL-­‐Umgebung gehört zu (0,*) (0,*) (1,1) Cluster ist in (1,*) zugeordnet Informa4onssysteme 2015 SQL-Umgebung (1,1) (0,*) Katalog (1,*) unterteilt (1,1) Kapitel 6. Sichten, Integrität und Zugriffskontrolle Schema 81 Datendefini4on nach SQL (2) § SQL-­‐Schema • Katalog kann man als DB (in der DB) ansehen • SQL-­‐Schemata sind Hilfsmixel zur logischen Gruppierung von Objekten innerhalb einer solchen DB • Datendefini4onsteil von SQL enthält Anweisungen zum Erzeugen, Ändern und Löschen von Schemaelementen § Kataloge • bestehen aus SQL-­‐Schemata und können innerhalb einer SQL-­‐ Umgebung op4onal auf ein oder mehrere Cluster verteilt werden. • Sinn dieser Clusterbildung ist die Zuordnung von genau einem Cluster zu jeder SQL-­‐Sitzung und dadurch wiederum die Zuordnung einer Menge von Daten bzw. Katalogen zu dieser Sitzung § SQL erlaubt prinzipiell Schema/Katalogübergreifende Datenzugriffe mit Hilfe von "qualifizierten Namen" Beispiel: SELECT * FROM C1.S1.PRODUCTS p, C2.S1.SALES s WHERE p.id = s.pid and p.price > 100 Informa4onssysteme 2015 Kapitel 6. Sichten, Integrität und Zugriffskontrolle 82 Defini4on von Schemata § Anweisungssyntax (vereinfacht) CREATE SCHEMA [schema] [AUTHORIZATION user] [DEFAULT CHARACTER SET char-set] [schema-element-list] • Defini4on aller Defini4onsbereiche, Basisrela4onen, Sichten (Views), Integritätsbedingungen und Zugriffsrechte erfolgt im Rahmen eines Schemas • Jedes Schema ist einem Benutzer (user) zugeordnet, z.B. DBA - Benutzer ist automa4sch Besitzer (owner) der Objekte (z.B. Tabellen) des Schemas • Schema erhält Benutzernamen, falls keine explizite Namensangabe erfolgt § D1: Benennung des Schemas CREATE SCHEMA Beispiel-­‐DB AUTHORIZATION DB-­‐Admin Informa4onssysteme 2015 Kapitel 6. Sichten, Integrität und Zugriffskontrolle 83 Elemente des SQL-­‐Schemas Schema Tabelle Basistabelle Sicht Sicht Integritätsbedingung Tabellenbedingung Referentielle Integritätsbedingung Freie Bedingung CHECK-Bedingung Domäne Domänenbedingung Zeichensatz Zeichenordnung Zeichensatztransformation Zugriffsrecht Legende: ist hat Zugriffsrecht auf Tabelle Zugriffsrecht auf Spalte Benutzer Informa4onssysteme 2015 Zugriffsrecht auf anderes Objekt Kapitel 6. Sichten, Integrität und Zugriffskontrolle 84 Informa4ons-­‐ und Defini4onsschema § Ziel der SQL-­‐Normierung • möglichst große Unabhängigkeit der DB-­‐Anwendungen von speziellen DBS • einheitliche Sprachschnixstelle genügt nicht! • Beschreibung der gespeicherten Daten und ihrer Eigenschaien (Metadaten) nach einheitlichen und verbindlichen Richtlinien ist genauso wich4g § Zweischich4ges Defini4onsmodell zur Beschreibung der Metadaten • Informa4onsschema - Bietet einheitliche Sichten in normkonformen Implemen4erungen - Ist für den Benutzer zugänglich und somit die definierte Schnixstelle zum Katalog Informationsschema • Defini4onsschema - Beschreibt hypothe4sche Katalogstrukturen, also Meta-­‐Metadaten - Erlaubt „Altsysteme“ mit abweichenden Implemen4erungen normkonform zu werden Informa4onssysteme 2015 Kapitel 6. Sichten, Integrität und Zugriffskontrolle Definitionsschema 85 Das Defini4onsschema REFERENTIAL_ CONSTRAINTS Refs primary key/ unique constr. is for. key primary key / unique constr. for. key ASSERTIONS SCHEMATA owner default character set check or xor TABLE_ CONSTRAINTS CHECK_ CONSTRAINTS KEY_COLUMN_ USAGE CHECK_TABLE_ USAGE DOMAIN_ CONSTRAINTS DOMAINS CHECK_COLUMN_ USAGE or DATA_TYPE_ DESCRIPTOR CHAR SET >0 TABLES or COLUMNS COLLATIONS default collation VIEW_TABLE USAGE VIEW_COLUMN_ USAGE VIEW CHARACTER_ USAGE target COLUMN_ PRIVILEGES TABLE_ PRIVILEGES grantor grantee grantor USAGE_ PRIVILEGES grantee grantor or TRANSLATIONS grantee USERS Informa4onssysteme 2015 source Kapitel 6. Sichten, Integrität und Zugriffskontrolle SQL_LANGUAGES 86 Zusammenfassung – Schemata und Metadaten § SQL-­‐Umgebung • Zugriff auf SQL-­‐Kataloge mit SQL-­‐Schemata, die ein SQL-­‐Cluster zugeordnet sind § SQL-­‐Schema • enthält Objekte (Tabellen, Sichten, Constraints, ...) • hat einen zugeodneten Benutzer als Besitzer der Objekte § Standardisierter Zugriff auf Metadaten • jeder Katalog enthält ein Informa4onsschema zum Zugriff auf Metadaten, welche die Objekte aller Schemata des Katalogs beschreiben • die zugrundeliegenden Metadatenstrukturen sind in einem konzeptuellen Defini4onsschema beschrieben • Benutzer sieht immer nur die Metadaten von Objekten, auf die er auch Zugriff hat! Informa4onssysteme 2015 Kapitel 6. Sichten, Integrität und Zugriffskontrolle 87