Vorlesung Informationssysteme

Ähnliche Dokumente
Benutzerverwaltung, Sichten und Datenintegrität

Website freiburg-bahai.de

Benutzerverwaltung Business- & Company-Paket

Online-Prüfungs-ABC. ABC Vertriebsberatung GmbH Bahnhofstraße Neckargemünd

PostgreSQL High-Security

Datenbankadministration

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Unterabfragen (Subqueries)

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

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

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007

ERSTELLEN VON INCENTIVES IM ZANOX NETZWERK

Inhaltsverzeichnis. Vorwort Einleitung... 15

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum:

PostgreSQL unter Debian Linux

OP-LOG

Übersicht... 2 Dateiupload... 3 Administratorfunktionen... 4

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

Electures-Portal. Vorstellung und Empfehlungen Christoph Hermann - Universität Freiburg - Institut für Informatik 1

3.17 Zugriffskontrolle

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Arbeiten mit einem lokalen PostgreSQL-Server

Anleitung für den Zugriff auf Mitgliederdateien der AG-KiM

Archiv - Berechtigungen

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Lehrer: Einschreibemethoden

desk.modul : WaWi- Export

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

Benutzerverwaltung mit Zugriffsrechteverwaltung (optional)

5 Sicherheit und Zugriff auf SQL Server 2008 R2

Ein Ausflug zu ACCESS

Dokumentation für das Web-basierte Abkürzungsverzeichnis (Oracle mod_plsql / Apache)

1 Die Active Directory

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

Updatehinweise für die Version forma 5.5.5

macs Support Ticket System

KURZANLEITUNG CYBERDUCK MIT CLOUD OBJECT STORAGE

f Link Datenbank installieren und einrichten

7. Übung - Datenbanken

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Benutzer Verwalten. 1. Benutzer Browser

Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. ist einer davon.

easysolution GmbH easynet Bessere Kommunikation durch die Weiterleitung von easynet-nachrichten per nach Hause

Es gibt einige Kardinalstellen, an denen sich auf der Festplatte Müll ansammelt: Um einen Großteil davon zu bereinigen.

Aktualisierung zum Buch Windows und PostgreSQL

Kurzanleitung OOVS. Reseller Interface. Allgemein

Alle alltäglichen Aufgaben können auch über das Frontend durchgeführt werden, das in den anderen Anleitungen erläutert wird.

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

Hilfe zur Urlaubsplanung und Zeiterfassung

MailUtilities: Remote Deployment - Einführung

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

DB2 Kurzeinführung (Windows)

Benutzeranleitung Superadmin Tool

SharePoint Demonstration

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

cs241: Datenbanken mit Übungen HS 2011

Benutzerverwaltung und Rechtevergabe

Netzwerkeinstellungen unter Mac OS X

Integrated Services Realtime Remote Network

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

Instruktionsheft für neue Webshop Hamifleurs

Berechtigungsgruppen TimeSafe Leistungserfassung

Bedienungsanleitung für den Online-Shop

Tevalo Handbuch v 1.1 vom

Zeichen bei Zahlen entschlüsseln

Administrator-Anleitung

e-books aus der EBL-Datenbank

Subpostfächer und Vertretungen für Unternehmen

QR-FUNKTION. Informationen über zu erledigende Aufgaben an das Reinigungspersonal senden.

Kapsch Carrier Solutions GmbH Service & Support Helpdesk

Kurzanleitung RACE APP

PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach

KURZANLEITUNG CLOUD OBJECT STORAGE

Informatik 12 Datenbanken SQL-Einführung

Verwaltung von Lehrveranstaltungen mit moodle

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

S TAND N OVEMBE R 2012 HANDBUCH DUDLE.ELK-WUE.DE T E R M I N A B S P R A C H E N I N D E R L A N D E S K I R C H E

Online-Dateienablage und Datenaustauschdienst Box.net Stand: September 2011

Verwendung des IDS Backup Systems unter Windows 2000

Import und Export von Übergängern

Objektorientierte Programmierung. Kapitel 12: Interfaces

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

Anleitung für IQES-Verantwortliche Persönliche Konten verwalten

teischl.com Software Design & Services e.u. office@teischl.com

Wie richten Sie Ihr Web Paket bei Netpage24 ein

Professionelle Seminare im Bereich MS-Office

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)

Netzlaufwerke verbinden

Erste Schritte mit TeamSpeak 3

Schrittweise Anleitung zur Installation von Zertifikaten der Bayerischen Versorgungskammer im Mozilla Firefox ab Version 2.0

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

Handbuch SyCOM Administration

ecaros2 - Accountmanager

Die PayPal Testumgebung (Sandbox) Inhalt. Version Dezember 2013

Microsoft Access 2013 Navigationsformular (Musterlösung)

Infinigate (Schweiz) AG. Secure Guest Access. - Handout -

Transkript:

Saarbrücken, 18.06.2015 Information Systems Group Vorlesung Informationssysteme Vertiefung Kapitel 7: Zugriffskontrolle Erik Buchmann (buchmann@cs.uni-saarland.de) Foto: M. Strauch

Aus den Videos wissen Sie......wie man Postgres installiert und einsetzt Schema erzeugen, Daten manipulieren, Anfragen durchführen wie SQL funktioniert Deklarative Sprache, Umsetzung von Sprachkonstrukten auf Operatoren ist Sache des DBMS Vertiefung heute: Zugriffskontrolle in SQL im Allgemeinen und Postgres im Besonderen Rollenhierarchien zur strukturierten Rechtevergabe 2 InfoSys - Zugriffskontrolle

Foto: M. Strauch Role-Based Access Control

Motivation In einer DB werden häufig sensible Daten gespeichert Betriebsgeheimnisse, persönliche Daten, Kundendaten DB ist kritische Infrastruktur Totalausfall kann das Ende des Unternehmens bedeuten DBMS muss verhindern, dass Unberechtigte Einsicht bekommen Anfragen auf die Daten selbst DBMS muss verhindern, dass Unberechtigte Änderungen vornehmen Datenbanken und Datenbankschemata anlegen, ändern, löschen Indexe, Sichten, Zugriffskontrollmechanismen anlegen, ändern, löschen 4 InfoSys - Zugriffskontrolle

Die Frage der Granularität Je detaillierter die Zugriffsregeln, desto aufwändiger ist die Auswertung Zugriff auf die gesamte DB? Zugriff auf eine Datenbank in der DB? Zugriff auf eine Relation in einer Datenbank? Zugriff auf ein Tupel in einer Relation? Zugriff auf ein Attribut in einem Tupel? Standard-SQL Zugriffsregeln auf Relationenebene Recht auf Systemzugriff, Schemaänderungen auf Datenbank- und Systemebene Feingranulare Zugriffsregeln über Views CREATE VIEW v AS (SELECT * FROM mitarbeiter WHERE gehalt < 1000); GRANT SELECT ON v TO rolle; 5 InfoSys - Zugriffskontrolle

Zugriff auf Datenobjekte Damit ein Nutzer ( Rolle ) auf Datenobjekt zugreifen kann: 1) Authentifizierung im System erfolgreich (Host-based Auth.) 2) Rolle hat CONNECT-Recht für die Datenbank 3) Rolle hat USAGE-Recht auf das Schema, das das Datenobjekt enthält 4) Rolle ist Besitzer vom Datenobjekt, oder hat Zugriffsrechte darauf DBMS (Host-based Authentification) Database (Recht CONNECT) Schema (Recht USAGE) Tables Views andere Objekte Host-based Authentification In Postgres pg_hba.conf: Welche Rolle darf sich von wo aus einloggen? # TYPE DATABASE USER ADDRESS METHOD local all all trust host all all 127.0.0.1/32 trust local db1,db2 all md5 host postgres all 192.168.12.10/32 md5 6 InfoSys - Zugriffskontrolle

Role-Based Access Control Rolle steht synonym für User! Eine Rolle kann in einer Rollen-Hierarchie angeordnet sein Eine Rolle hat bestimmte Rechte auf bestimmte Datenobjekte Eine Rolle darf bestimmte Rechte auf andere Rollen übertragen (Quelle: Wikimedia) 7 InfoSys - Zugriffskontrolle

Rollen in Postgres Rolle anlegen, ändern, löschen CREATE ROLE name [ [WITH] option... ] ALTER ROLE name [ [WITH] option... ] DROP ROLE [IF EXISTS] name Optionen (NO)SUPERUSER (NO)CREATEDB (NO)CREATEROLE (NO)LOGIN PASSWORD 'password' VALID UNTIL 'timestamp' Superuser darf alles, keine Rechteprüfung neue DB anlegen neue Rolle anlegen in das System einloggen Passwort für Rollen, die sich einloggen dürfen Gültigkeitsdauer des Passworts 8 InfoSys - Zugriffskontrolle

Beispiele CREATE ROLE verkauf WITH PASSWORD 'bla123' CREATEDB LOGIN; Erzeuge Rolle verkauf verkauf darf sich mit Passwort bla123 am System anmelden verkauf hat das Recht, Datenbanken anzulegen CREATE ROLE einkauf NOLOGIN; Erzeuge Rolle einkauf Rolle darf sich nicht einloggen, kann aber Zugriffsrechte erhalten Wichtig für Rollenhierarchien, wird noch erläutert ALTER ROLE verkauf WITH NOCREATEDB; Ändere Rolle so, dass keine Datenbanken mehr angelegt werden dürfen 9 InfoSys - Zugriffskontrolle

Spezielle Rollen SUPERUSER Bei frisch installiertem Postgres ist die Rolle postgres Superuser Außerhalb der Rechteverwaltung, d.h., alles außer Systemtabellen löschen Superuser-Rechte können mit CREATE ROLE, ALTER ROLE jeder Rolle zugewiesen/entzogen werden PUBLIC z.b. ALTER ROLE dbadmin SUPERUSER; Implizite Gruppenrolle, zu der jede andere Rolle gehört Nützlich, um beispielsweise Relationen für alle sichtbar zu machen z.b. GRANT SELECT ON TABLE katzenfutter TO PUBLIC; 10 InfoSys - Zugriffskontrolle

GRANT und REVOKE Rechte zuweisen GRANT (ALL PRIVILEGES recht1, recht2, recht n) ON obj TO (PUBLIC rolle) [WITH GRANT OPTION] WITH GRANT OPTION: Rolle darf Recht an andere weitergeben Rechte entziehen REVOKE (ALL PRIVILEGES recht1, recht2, recht n) ON obj FROM (PUBLIC rolle) [CASCADE RESTRICT] CASCADE, RESTRICT: Betrifft Rollenhierarchien, wird noch erläutert Rollen mit Rechte-Abhängigkeiten dürfen nicht gelöscht werden Lösung REVOKE ALL PRIVILEGES FROM rolle; DROP ROLE rolle; 11 InfoSys - Zugriffskontrolle

Rechte Rechte auf Datenobjekte SELECT [spalte1, spalte2, spalte n] INSERT [spalte1, spalte2, spalte n] UPDATE [spalte1, spalte2, spalte n] DELETE und TRUNCATE Rechte auf Schema-Ebene CREATE REFERENCES [spalte1, spalte2, spalte n] (Datenbanken, Schemata, Tabellen anlegen) Achtung, DROP, ALTER (Table, Database) darf nur Ersteller und SUPERUSER, Recht kann nicht verliehen werden! Rechte auf Datenbank-Ebene (vgl. Folie 6) CONNECT USAGE EXECUTE (Verbindung zur DB aufbauen) (Auf das Relationenschema zugreifen) (DB-Funktionen ausführen) 12 InfoSys - Zugriffskontrolle

Beispiele GRANT ALL PRIVILEGES ON Person TO einkauf; GRANT DELETE ON Anschrift TO verkauf; [Person]: { [Name] } [Anschrift]: { [AID, Name, Straße] } [Katzenfutter]: { [KID, Name, Preis] } [Trockenfutter]: { [ID, Pelletgröße, KID] } [Naßfutter]: { [ID, Wasseranteil, KID] } [kauft]: {KID, Name} Rollen: einkauf, verkauf GRANT DELETE, SELECT ON kauft TO verkauf WITH GRANT OPTION; GRANT SELECT (ID, Wasseranteil), UPDATE (Wasseranteil) ON Naßfutter TO einkauf, verkauf; REVOKE SELECT ON Naßfutter FROM einkauf; REVOKE SELECT (ID, Wasseranteil) ON Naßfutter FROM einkauf; 13 InfoSys - Zugriffskontrolle

Automatisch zugewiesene Rechte Erzeuger einer Relation Alle Operationen zur Datenmanipulation INSERT, UPDATE, DELETE, SELECT, etc. Alle Operationen zur Schemamanipulation ALTER TABLE, DROP TABLE, etc. Wenn Rolle mit WITH GRANT OPTION Alle eigenen Rechte zur Datenmanipulation auf selbsterstellter Relation an andere Rollen weitergeben Kein Recht auf ALTER TABLE, DROP TABLE etc. vergebbar Rolle, der der Erzeuger einer Relation angehört Dieselben Rechte wie der Erzeuger SUPERUSER Darf alles außer Systemtabellen löschen und ändern 14 InfoSys - Zugriffskontrolle

Keine Unter-/Obermengenbeziehungen von Rechten Keine implizite Differenz von Rechten Funktioniert nicht 1. GRANT SELECT ON kundendaten TO schulze 2. REVOKE SELECT(name) ON kundendaten FROM schulze; keine Auswirkungen auf schulze, obwohl Recht SELECT(name) Teilmenge von SELECT Funktioniert 1. GRANT SELECT(name, str, plz, ort, tel) ON kundendaten TO schulze 2. REVOKE SELECT(name) ON kundendaten FROM schulze; Recht SELECT(name) erfolgreich entzogen Keine Vereinigung von Rechten Das sind unterschiedliche Rechte 1. GRANT SELECT ON kundendaten TO schulze; 2. GRANT SELECT(name, str, plz, ort, tel) ON kundendaten TO schulze; 3. REVOKE SELECT(name) ON kundendaten FROM schulze; keine Auswirkungen auf schulze 15 InfoSys - Zugriffskontrolle

Foto: M. Strauch Rollenhierarchien

Schnittstelle zum Anwendungsfalldiagramm Generalisierungshierarchien zwischen Akteuren im Anwendungsfalldiagramm abbilden Katzenfutter-Webshop nachbestellen Mitarbeiter im Einkauf <<extend>> Verwaltung Lagerbestand verwalten Mitarbeiter im Verkauf 17 InfoSys - Zugriffskontrolle

Strukturierte Teilnehmerhierarchien statt fehleranfälliger Einzelvergabe von Rechten verwaltung NOLOGIN CREATEDB CREATEROLE mitarbeiter einkauf verkauf kundenkontakt NOCREATEROLE NOCREATEDB [personal] [gehalt] [urlaub] [fehltage] [verbindlichkeiten] [lagerbestand] [lieferanten] [forderungen] [lagerbestand] [kundendaten] hotline [versandhistorie] [empfehlungen] [kundendaten] Recht auf SELECT... INSERT... UPDATE... kein Recht auf DELETE... ALTER TABLE administrator chef müller schulze LOGIN 18 InfoSys - Zugriffskontrolle

Rollenhierarchien über Rechteweitergabe Wenn Rolle ein Recht WITH GRANT OPTION hat, darf dieses Recht an andere weitergegeben werden Oder eine Teilmenge dieser Rechte Beispiel Nutzer a CREATE TABLE r ( ); GRANT ALL PRIVILEGES ON r TO b WITH GRANT OPTION; Nutzer b GRANT SELECT, INSERT ON r TO c WITH GRANT OPTION; Nutzer c GRANT SELECT ON r TO d; 19 InfoSys - Zugriffskontrolle

Rollenhierarchien über Vererbung Können beim Anlegen oder Ändern einer Rolle spezifiziert werden CREATE ROLE name [ [WITH] option... ] ALTER ROLE name [ [WITH] option... ] Option für Rollenhierarchien (NO)INHERIT Rolle erbt alle Rechte von den Rollen, in denen sie Mitglied ist IN ROLE existierende rolle 1, [existierende rolle 2...] neue/geänderte Rolle wird Mitglied der existierenden Rolle(n) Beispiel CREATE ROLE buchhaltung CREATEDB NOLOGIN; CREATE ROLE personal LOGIN INHERIT IN ROLE buchhaltung; buchhaltung ist eine Gruppenrolle, von der andere Rollen Rechte erben personal hat alle Rechte von buchhaltung plus eigene Rechte 20 InfoSys - Zugriffskontrolle

Laufendes Beispiel (1/2) verwaltung Rechtevererbung CREATE ROLE verwaltung NOLOGIN CREATEDB CREATEROLE; verkauf chef kunden CREATE ROLE verkauf INHERIT IN ROLE verwaltung NOCREATEDB NOCREATEROLE; CREATE ROLE kunden INHERIT IN ROLE verwaltung NOCREATEDB NOCREATEROLE; hotline schulze CREATE ROLE hotline INHERIT IN ROLE verkauf, kunden; CREATE ROLE chef LOGIN PASSWORD '123' INHERIT IN ROLE verwaltung; CREATE ROLE schulze LOGIN PASSWORD '321' INHERIT IN ROLE hotline; 21 InfoSys - Zugriffskontrolle

Laufendes Beispiel (2/2) Als Rolle chef: CREATE TABLE kundendaten ( ); kundendaten gehört chef, Alle Mitglieder von verwaltung dürfen kundendaten einsehen, verändern GRANT INSERT, UPDATE, SELECT ON kundendaten TO verkauf, kunden; schulze erbt das Recht ( ) auf kundendaten zuzugreifen, darf sie aber nicht löschen verwaltung chef verkauf kunden hotline schulze Experiment: REVOKE ALL PRIVILEGES ON kundendaten FROM verkauf; schulze kann weiter auf kundendaten zugreifen REVOKE ALL PRIVILEGES ON kundendaten FROM hotline; schulze kann noch auf kundendaten zugreifen Warum? REVOKE ALL PRIVILEGES ON kundendaten FROM hotline CASCADE; schulze kann immernoch zugreifen Warum? 22 InfoSys - Zugriffskontrolle

Entziehen von Zugriffsrechten REVOKE rechte ON obj FROM rolle [CASCADE RESTRICT] ist wesentlich weniger einfach als es klingt! Eine Rolle kann das Recht haben, Rechte weiterzugeben GRANT WITH GRANT OPTION Eine Rolle kann Rechte von anderen Rollen erben und an andere weitervererben CREATE ROLE INHERIT IN ROLE Erwartung: Entzug eines Rechts führt unmittelbar zum Verlust der damit verbundenen Möglichkeiten Aber: Es kann sein, dass Rechteinhaber das Recht auch aus anderer Quelle hat CASCADE betrifft nur mit GRANT weitergegebene Rechte Mit INHERIT ererbte Rechte können nicht unterwegs gelöscht werden Keine Mengenbeziehungen bei Entzug und Vergabe von Rechten 23 InfoSys - Zugriffskontrolle

Vererbte und weitergebene Rechte Bei Vererbung über INHERIT schulze verliert Zugriff auf kundendaten REVOKE ALL PRIVILEGES ON kundendaten FROM verkauf, kunden; REVOKE FROM hotline hat keine Auswirkungen verkauf kunden hotline schulze Bei Weitergabe über WITH GRANT OPTION verkauf: GRANT SELECT ON kundendaten TO hotline WITH GRANT OPTION kunden: GRANT SELECT ON kundendaten TO hotline WITH GRANT OPTION hotline: GRANT SELECT ON kundendaten TO schulze schulze verliert Zugriff auf kundendaten verkauf: REVOKE ALL PRIVILEGES ON kundendaten FROM hotline CASCADE; kunden: REVOKE ALL PRIVILEGES ON kundendaten FROM hotline CASCADE; Ohne CASCADE und wenn nicht beide Rechtegeber Rechte zurückziehen ändert sich für schulze nichts verkauf hotline schulze kunden 24 InfoSys - Zugriffskontrolle

Foto: M. Strauch Zum Abschluss

Wie geht es weiter? bis Montag, 22.06., 12 Uhr Quiz: Schemaoperationen in SQL Dienstag, 23.06., GHH 12-14 Uhr: Tutoriumstermin kurze Besprechung von Aufgabenblatt 7 nächstes Aufgabenblatt: komplexe Anfragen in SQL Donnerstag, 25.06.: Präsenztermin Noch mehr interessante Problemstellungen in SQL 26 InfoSys - Zugriffskontrolle