Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Datenschutz in DBMS Benutzerverwaltung Rechteverwaltung Rollen und Gruppen Views Audit Dr. Heidrun BethgeDatenbanken II1.

Ähnliche Präsentationen


Präsentation zum Thema: "Datenschutz in DBMS Benutzerverwaltung Rechteverwaltung Rollen und Gruppen Views Audit Dr. Heidrun BethgeDatenbanken II1."—  Präsentation transkript:

1 Datenschutz in DBMS Benutzerverwaltung Rechteverwaltung Rollen und Gruppen Views Audit Dr. Heidrun BethgeDatenbanken II1

2 Dr. Heidrun BethgeDatenbanken II2 Datenschutz in DBMS Datenschutz = Schutz der Daten vor unerlaubter Nutzung und Manipulation Datenschutz in Oracle allgemeine Sicherheitsmaßnahmen in DBMS

3 Dr. Heidrun BethgeDatenbanken II3 Datenschutz mittels Zugangskontrolle Verhinderung von unerlaubtem Zugriff und Manipulation von Daten durch: Benutzerverwaltung Rechtevergabe (Wer darf was womit?) Rollen (Bündelung von Rechten) Views

4 Dr. Heidrun BethgeDatenbanken II4 Datensicherheit sonstige Datenintegrität: Schutz der Konsistenz der Daten z. B. durch Constraints, Trigger Datensicherheit: systembedingte Fehler vermeiden z. B. durch Transaktionen, Recovery

5 Dr. Heidrun BethgeDatenbanken II5 Benutzerverwaltung

6 Schema / User Ein Schema ist ein logischer Container für Datenstrukturen, wie z.B. Tabellen oder Indices. Logische Gruppierung erfolgt z.B. nach Anwendung. Jeder User besitzt sein eigenes Schema. Schema und User haben den selben Namen. Ist dem User die Resource-Rolle zugewiesen (Standard), dann darf er seine Schema-Objekte verändern, löschen oder für sie Rechte vergeben. Wird ein Objekt von einem User erstellt, so ist dieser Besitzer des Objekts. Dr. Heidrun BethgeDatenbanken II6

7 Dr. Heidrun BethgeDatenbanken II7 CREATE USER CREATE USER identified by default tablespace temporary tablespace profile account lock|unlock -- nicht gesperrt password expire-- neues PW bei 1. Anmeldung quota 100M|unlimited on ; MB Minimalvariante: CREATE USER IDENTIFIED BY ;

8 Dr. Heidrun BethgeDatenbanken II8 ALTER USER alter user identified by default tablespace temporary tablespace profile account lock|unlock -- nicht gesperrt password expire-- neues PW bei 1. Anmeldung quota 100M|unlimited on ; MB

9 Passwort ändern alter user identified by [replace ]; replace ist nur notwendig, wenn im Profil PASSWORD_VERIFY_FUNCTION eingeschaltet ist. ab Oracle 11g sind Passwörter im Standard case- sensitiv dies lässt sich über Initialisierungs-Parameter ausschalten: alter system set sec_case_sensitive_logon=false; Dr. Heidrun BethgeDatenbanken II9

10 Tablespace-Quoten alter user benutzer quota 10M on users quota unlimited on bsp_ts; Quote gilt für die Objekte im Schema. Dabei ist egal, wer sie erstellt. Hat user2 Zugriff auf Schema von user1 und schreibt user2 dessen Schema voll, so gilt die Quote vom Schema user1. Data-Dictionary-Views: dba_ts_quotas, dba_users Dr. Heidrun BethgeDatenbanken II10

11 Dr. Heidrun BethgeDatenbanken II11 CREATE PROFILE CREATE PROFILE limit failed_login_attempts password_life_time password_reuse_max … Beispiel: CREATE PROFILE praktikant limit failed_login_attempts 5 password_life_time 20 password_reuse_max 3; create user meier … profile praktikant …;

12 Dr. Heidrun BethgeDatenbanken II12 ALTER / DROP USER Passwort eines Benutzers ändern: ALTER USER IDENTIFIED BY ; Oracle: ohne Anführungszeichen, MySQL: mit Anführungszeichen Benutzer und alle Objekte in seinem Schema löschen: DROP USER [CASCADE];

13 Rechteverwaltung Grant / Revoke Dr. Heidrun BethgeDatenbanken II13

14 Dr. Heidrun BethgeDatenbanken II14 GRANT GRANT privilege_name ON object_name TO {user_name | PUBLIC | role_name} [WITH GRANT OPTION] [WITH ADMIN OPTION]; GRANT SELECT, INSERT, UPDATE, DELETE ON library TO peter; Privilegien: ALTER, CREATE, DELETE, DROP, FILE, INDEX, INSERT, REFERENCES, SELECT, SHUTDOWN, UPDATE... alle setzen: ALL (setzt jedoch nicht GRANT) keine setzen: USAGE WITH GRANT OPTION: vergibt GRANT-Recht bei Objektberechtigungen (select, insert, update..) WITH ADMIN OPTION: Recht darf weitergegeben werden bei Systemberechtigungen (create table, create user..)

15 Dr. Heidrun BethgeDatenbanken II15 Beispiele für GRANT Alle Privilegien an Peter übergeben (außer GRANT): GRANT ALL on tabellenname to peter; Allen Usern das SELECT-Privileg an einer Tabelle geben: GRANT SELECT on tabellenname to public; Den Zugriff für einzelne Felder innerhalb einer Tabelle erlauben: GRANT UPDATE (feld1),INSERT (feld1, feld2) on tabellenname to peter; Einem User ein Recht geben an Objekten eines fremden Schemas: GRANT SELECT, INSERT on schemaname.tabellename to peter;

16 Dr. Heidrun BethgeDatenbanken II16 GRANT (Forts.) Es können auch System-Privilegien an DBA-User vergeben werden, wie z.B. CREATE SESSION, CREATE USER Privilegien löschen, indem GRANT mit verkleinerter Privilegien-Liste aufgerufen wird, ist nicht möglich. Dafür ist REVOKE erforderlich. Oracle: schema.tabelle MySQL: datenbank.tabelle

17 Dr. Heidrun BethgeDatenbanken II17 REVOKE REVOKE privilege_name ON object_name FROM {user_name | PUBLIC | role_name}; z.B. REVOKE INSERT, UPDATE, DELETE ON library FROM peter; Gegenteil von GRANT. Löscht einzelne Privilegien wieder. GRANT..TO.. REVOKE..FROM..

18 Dr. Heidrun BethgeDatenbanken II18 REVOKE (Forts.) Peter das Löschrecht auf der Kundentabelle nehmen: REVOKE DELETE on kunden from peter; Peter sämtliche Rechte auf der Kundentabelle nehmen: REVOKE ALL on kunden from peter; Allen Usern sämtliche Rechte auf der Kundentabelle nehmen: REVOKE ALL on kunden from public; GRANT-Privileg löschen: REVOKE GRANT OPTION ON objects FROM users

19 REVOKE Es kann nichts verboten (REVOKE) werden, was auf höherer Ebene erlaubt (GRANT) ist. Es können nur Rechte entzogen werden, die vorher gewährt wurden. Rechte auf Feldern können nicht entzogen werden. Hierzu erst Recht (z.B. INSERT) auf gesamter Tabelle entziehen, dann es den Feldern wieder gewähren, die das INSERT- Recht behalten sollen. Dr. Heidrun BethgeDatenbanken II19

20 Dr. Heidrun BethgeDatenbanken II20 Zugriffsrechte ansehen Welche Tabellen-Rechte gewähre ich anderen Usern? SELECT * FROM USER_TAB_PRIVS_MADE; Welche Tabellen-Rechte werden mir von anderen Usern gewährt? SELECT * FROM USER_TAB_PRIVS_RECD; Welche Feld-Rechte gewähre ich anderen Usern? SELECT * FROM USER_COL_PRIVS_MADE Welche Feld-Rechte werden mir von anderen Usern gewährt? SELECT * FROM USER_COL_PRIVS_RECD;

21 Dr. Heidrun BethgeDatenbanken II21 Rollen und Gruppen

22 Dr. Heidrun BethgeDatenbanken II22 Rollen und Gruppen In vielen großen DB-Systemen implementiert (nicht z.B. in MySQL). Reduzierung des Verwaltungsaufwands für die Rechtevergabe an eine große Anzahl von Benutzern Gleiche Rechte werden zu Rollen zusammengefasst (Oracle, SQL-Server). Rechte werden Rollen gewährt. Rollen werden Benutzern gewährt. Benutzer werden zu Gruppen zusammengefasst (Sybase, DB2). Rechte werden an Gruppen vergeben.

23 Standard-Rollen in Oracle CONNECT Verbindung zur DB, Lesezugriff RESOURCE Erstellung von Objekten im eigenen Schema DBA Administrative Aufgaben, Objekte erstellen in beliebigen Schemata, Rechte zuweisen. Nicht: hoch- und runterfahren der DB. Oracle 11g.2 XE23

24 Dr. Heidrun BethgeDatenbanken II24 Beispiel Rolle in Oracle Der Benutzer Bob wird erstellt: create user Bob identified by Bobs_Passwort; Die Rolle Clerk wird erstellt: create role Clerk; Der Rolle Clerk wird ein Select- und Insert-Recht zugewiesen: grant select, insert on tabelle to Clerk; Dem Benutzer Bob wird die Rolle Clerk zugewiesen: grant clerk to Bob; Der Rolle Clerk das insert-Recht entziehen: revoke insert on tabelle from Clerk; Den Benutzer Bob aus der Rolle clerk entfernen: revoke clerk from Bob;

25 Dr. Heidrun BethgeDatenbanken II25 Views

26 Dr. Heidrun BethgeDatenbanken II26 View CREATE VIEW telefonliste (kunde,telefon) AS SELECT nachname, fonnr FROM tkunde In DBMS gespeicherter SELECT-Befehl Keine Speicherung des Abfrageergebnisses, dieses wird bei jedem Aufruf neu erstellt virtuelle Tabelle: in Abfragen nutzbar Vereinfachung von Abfragen View auf View und/oder Tabellen erstellbar Zugriffskontrolle über GRANT/REVOKE Vor dem Benutzer bleiben die Basistabellen verborgen Basistabellen über View mit Einschränkungen änderbar Codd: logische Datenunabhängigkeit

27 Dr. Heidrun BethgeDatenbanken II27 View Definition CREATE OR REPLACE VIEW [( )] as [with check option]; With check option: Prüfen, ob DML- Operationen in der Sicht den in ihr nicht sichtbaren Teil einer Basistabelle beeinflussen -> dann abweisen der Operation

28 Dr. Heidrun BethgeDatenbanken II28 Beispiel INSERT via VIEW I CREATE VIEW kunde AS SELECT firma,plz,ort FROM knd; INSERT INTO kunde (firma,ort) values (´Maier & Söhne´,´Hamburg´);

29 Dr. Heidrun BethgeDatenbanken II29 Beispiel INSERT via VIEW II CREATE VIEW kunde_auftrag AS SELECT auf_id,kunde,plz,ort FROM knd INNER JOIN auftrag ON knd.knd_id = auftrag.knd_id; insert into kunde_auftrag values (1,´Maier´,´30419´,´Hannover´)

30 Dr. Heidrun BethgeDatenbanken II30 INSERT via VIEW: Probleme NOT NULL Attribute könnten unausgefüllt bleiben -> INSERT wird verhindert Lösung: DEFAULT-Werte 1 Tupel in View gegenüber n Tupeln in Relation Schlüsselattribute ggf. nicht vorhanden in View –> kein eindeutiger Zugriff auf Tupel

31 Dr. Heidrun BethgeDatenbanken II31 VIEW mit Aggregatfunktion CREATE VIEW gehalt (abteilung, gehalt_mittel) AS SELECT abteilung_id, avg(gehalt) FROM mitarbeiter GROUP BY abteilung_id; UPDATE gehalt SET gehalt_mittel=gehalt_mittel+100 WHERE abteilung=10 nicht umsetzbar!

32 Dr. Heidrun BethgeDatenbanken II32 Views ermöglichen Zeilen-Sicherheit Zugriffsrechte auf Views: Auf diese Weise auch Zeilen-Sicherheit erreichbar Auch Sicherheit für dynamisch erzeugte Daten create view anggehalt as select angnr, gehalt from angest where gehalt < 3000; GRANT SELECT ON anggehalt to peter;

33 Dr. Heidrun BethgeDatenbanken II33 Gefilterte Views: Tupelmigration CREATE VIEW edv_mitarbeiter AS SELECT * FROM mitarbeiter WHERE abteilung = 12 UPDATE edv_mitarbeiter SET abteilung = 11 WHERE mitarbeiter_id = 2 Tupelmigration kann verhindert werden durch: CREATE VIEW edv_mitarbeiter AS SELECT * FROM mitarbeiter WHERE abteilung = 12 WITH CHECK OPTION;

34 Dr. Heidrun BethgeDatenbanken II34 Audit

35 Dr. Heidrun BethgeDatenbanken II35 Auditing Aufzeichnen von kritischen Operationen, z. B. delete, insert, grant, update Wurde ein DBMS gehackt, so ist wichtig herauszufinden: - Wie fand der Zugriff statt? - Wann fand der Zugriff statt? - Was wurde verändert? - Worauf wurde zugegriffen? Protokoll in Tabelle aud$ des Benutzers sys. Performanz-Beeinträchtigung durch Auditing Automatisches Audit über Anmeldungen mit administrativen Rechten, Datenbankstarts und -stops

36 Dr. Heidrun BethgeDatenbanken II36 Audit AUDIT { | } [BY ] [WHENEVER [NOT] SUCCESSFUL]; Über Auditing keine Dokumentation von alten und neuen Werten -> dazu Protokolltrigger nötig!

37 Dr. Heidrun BethgeDatenbanken II37 Audit Beispiele audit delete any table; audit delete on kunde; noaudit delete any table; audit update on angestellte whenever not successful; audit update(gehalt) on angestellte;

38 Audit aktivieren SHOW PARAMETER AUDIT; ALTER SYSTEM SET audit_trail=db SCOPE=SPFILE; DB-Services neu starten AUDIT ALL BY BY ACCESS; CREATE TABLE test (id integer, nachname varchar(10)); DROP TABLE test; SELECT * FROM DBA_COMMON_AUDIT_TRAIL; SELECT * FROM sys.aud$; NOAUDIT ALL BY ; ALTER SYSTEM SET audit_trail=none SCOPE=SPFILE; Dr. Heidrun BethgeDatenbanken II38


Herunterladen ppt "Datenschutz in DBMS Benutzerverwaltung Rechteverwaltung Rollen und Gruppen Views Audit Dr. Heidrun BethgeDatenbanken II1."

Ähnliche Präsentationen


Google-Anzeigen