Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
ZveřejnilVanesa Staňková
1
Databázové systémy II Přednáška č. 2 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky david.zak@upce.cz david.zak@upce.cz
2
Obsah Zajištění bezpečnosti dat Databázové systémy 2 - př. 1 2
3
Zajištění bezpečnosti dat Cíle, které je třeba vzít v úvahu při návrhu databázové aplikace z pohledu bezpečnosti: Důvěrnost (secrecy) - informace by neměly být přístupné neautorizovaným uživatelům. Integrita (integrity) - modifikovat data může jen autorizovaný uživatel. Dostupnost (availability) - autorizovaným uživatelům by nemělo být bráněno v přístupu. – bezpečnostní politika - kdo co může s jakými daty dělat – bezpečnostní mechanismy - zajištění bezpečnostní politiky Databázové systémy 2 - př. 1 3
4
Bezpečnostní mechanismy Pohledy – umožní přístup jen k některým sloupcům tabulek – možnost omezit přístupné řádky – možnost skrýt skutečnou strukturu tabulek – mohu omezit, že některé pohledy mají sloužit pouze ke čtení (read only) CREATE VIEW V_UKAZKA AS SELECT sloupec_A novy_nazev_sloupce, sloupec_B omezení a přejmenování sloupců FROM tabulka_1 skrytí skutečné tabulky WHERE podmínka omezení řádků [WITH CHECK OPTION [CONSTRAINT constraint] ] omezení pro INSERT a UPDATE řádků [WITH READ ONLY] pohled pouze pro čtení Databázové systémy 2 - př. 1 4
5
Přístup k databázi Pro přístup do databáze je nutné, aby uživatel měl v databázi zaregistrováno uživatelské jméno a odpovídající heslo. Tuto registraci provádí správce databáze při registraci nového uživatele příkazem CREATE USER. CREATE USER IDENTIFIED BY Příklad CREATE USER jnovak IDENTIFIED BY w25sqx; Příkaz vytvořil v databázi uživatele s názvem JNOVAK, který bude mít heslo "w25sqx". Databázové systémy 2 - př. 1 5
6
Přístup k databázi Při vytvoření uživatele je možno zároveň přidělit uživateli default tablespace a temporary tablespace neboli implicitní a dočasný tabulkový prostor. CREATE USER IDENTIFIED BY DEFAULT TABLESPACE TEMPORARY TABLESPACE Dále je možné např. definovat, že uživatel musí změnit heslo při dalším přihlášení, nastavit uživateli profil, omezit velikost přiděleného místa v tabulkových prostorech atd. Příklad CREATE USER jnovak IDENTIFIED BY w25sqx DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp; Příklad ukazuje vytvoření uživatele a přidělení tabulkových prostorů. Pokud tabulkové prostory nejsou určeny, nastaví se implicitní hodnoty. Databázové systémy 2 - př. 1 6
7
Přístup k databázi Uživatel si může změnit heslo uvedeným příkazem. Stejně tak to za něj může provést administrátor. ALTER USER IDENTIFIED BY ; Příklad ALTER USER JNOVAK IDENTIFIED BY sdf45t; Databázové systémy 2 - př. 1 7
8
Systémová přístupová práva poskytují možnost operace na úrovni schématu uživatele nebo na úrovni celé databáze. GRANT CREATE SESSION, CREATE TABLE TO JNOVAK; Příkazem GRANT byla uživateli JNOVAK přidělena práva přístupu k databázi a vytváření tabulek. REVOKE CREATE TABLE FROM JNOVAK; Příkazem REVOKE bylo stejnému uživateli odebráno právo vytvářet tabulky. Uživatel musí mít minimálně právo CREATE SESSION, aby se mohl přihlásit do databáze. GRANT CREATE PROCEDURE TO JNOVAK WITH ADMIN OPTION; Pokud bylo uživateli přiděleno právo např. CREATE PROCEDURE příkazem s klauzulí WITH ADMIN OPTION, získává uživatel zároveň právo přidělovat právo CREATE PROCEDURE i jiným uživatelům. SELECT * FROM user_sys_privs; Informace ze systémového katalogu o systémových právech přidělených uživateli. Databázové systémy 2 - př. 1 8
9
Systémová přístupová práva CREATE PROCEDURE CREATE SEQUENCE CREATE SESSION CREATE SYNONYM CREATE TABLE CREATE TRIGGER CREATE TYPE CREATE USER CREATE VIEW Databázové systémy 2 - př. 1 9
10
Přístupová práva k objektům - poskytují uživateli možnost provádět databázové operace s určitými objekty jiného uživatele. Tyto práva může poskytovat správce nebo vlastník objektu. GRANT SELECT, INSERT, UPDATE, DELETE ON cisla TO jnovak; Uživatel, který vlastní tabulku CISLA přidělil právo dotazu, vkládání, aktualizace a rušení záznamů nad touto tabulkou uživateli JNOVAK. SELECT * FROM pholy.cisla; Uživatel s přidělenými právy pro dotaz nad tabulkou CISLA vlastníka(tedy schématu) PHOLY provedl dotaz v této tabulce. SELECT * FROM user_tab_privs; SELECT * FROM user_tab_privs_made; SELECT * FROM user_tab_privs_recd; Informace ze systémového katalogu o všech, přidělených a přijatých objektových právech. Databázové systémy 2 - př. 1 10
11
Objektová práva Tabulky, pohledy: ALTER DELETE INDEX INSERT UPDATE SELECT REFERENCES … Procedury, funkce: EXECUTE DEBUG Databázové systémy 2 - př. 1 11
12
Vytváření rolí Pro zjednodušení správy přístupových práv je možno použít prostředek nazvaný role. Role je množina souvisejících práv, které může správce přidělit najednou uživatelům databáze a ostatním rolím. Pro vývoj aplikace jsou programátorovi nejčastěji přiděleny role CONNECT a RESOURCE. GRANT CONNECT TO jnovak; GRANT RESOURCE TO jnovak; Přidělení rolí CONNECT a RESOURCE uživateli jnovak. SELECT * FROM user_role_privs; USERNAME GRANTED_ROLE ADM DEF OS_ -------------------------- ----------------------- --- --- --- JNOVAK CONNECT NO YES NO JNOVAK RESOURCE NO YES NO Výpis přidělených rolí přihlášeného uživatele. Databázové systémy 2 - př. 1 12
13
Vytváření rolí Jaká práva role obsahují je možno zjistit z pohledu syst. katalogu ROLE_SYS_PRIVS. SELECT * FROM role_sys_privs ROLE PRIVILEGE ADM ------------------------------ ---------------------------------------- -------------- ------------ - CONNECT ALTER SESSION NO CONNECT CREATE CLUSTER NO CONNECT CREATE DATABASE LINK NO CONNECT CREATE SEQUENCE NO CONNECT CREATE SESSION NO CONNECT CREATE SYNONYM NO CONNECT CREATE TABLE NO CONNECT CREATE VIEW NO RESOURCE CREATE CLUSTER NO RESOURCE CREATE INDEXTYPE NO RESOURCE CREATE OPERATOR NO RESOURCE CREATE PROCEDURE NO RESOURCE CREATE SEQUENCE NO RESOURCE CREATE TABLE NO RESOURCE CREATE TRIGGER NO RESOURCE CREATE TYPE NO Databázové systémy 2 - př. 1 13
14
Vytvoření a přidělení rolí CREATE ROLE sklad; Příklad vytvoření role. Pro tento příkaz je nutno mít právo CREATE ROLE, které může přidělit správce. GRANT SELECT, INSERT, UPDATE, DELETE ON prijem TO sklad; GRANT SELECT, INSERT, UPDATE, DELETE ON vydej TO sklad; Přidělení přístupových práv na tabulky PRIJEM a VYDEJ roli SKLAD. GRANT sklad TO uživ1, uživ2, uživ3...; Přidělení role SKLAD uživatelům. SET ROLE sklad; Aktivování role SKLAD a zrušení ostatních přístupových práv. Tento příkaz je možno použít např. při spuštění aplikace. Databázové systémy 2 - př. 1 14
15
Přidělení práv všem uživatelům TO PUBLIC.. tj. všem uživatelům GRANT SELECT ON knihy TO PUBLIC; Přidělení přístupových práv na čtení tabulky knihy všem uživatelům. Databázové systémy 2 - př. 1 15
16
Schémata v systému Oracle Schéma je množina databázových objektů, které spolu souvisejí. Databázovými objekty mohou být tabulky, pohledy, indexy, clustery, sekvence, synonyma, uložené procedury, uložené triggery, databázové linky, snapshoty (používané pro repliky vzdálených tabulek). Při vytvoření uživatele správcem se implicitně vytvoří databázové schéma uživatele v definovaném tabulkovém prostoru. Ve svém databázovém schématu vlastní uživatel všechny objekty. Tip: všechny vytvořené databázové objekty si zobrazíte příkazem SELECT * from user_objects; Databázové systémy 2 - př. 1 16
17
Bezpečnostní mechanismy Oracle Zajištění principu minimálních nutných práv Mechanismus řízení přístupu pomocí systémových i objektových práv Řízení přístupu na úrovni záznamů Transparentní šifrování dat Šifrování záloh Šifrování komunikace Detailní audit operací Centrální správa uživatelů - spolupráce s LDAP Bezpečnostní certifikace Databázové systémy 2 - př. 1 17
18
Bezpečnostní mechanismy Oracle Mechanismus Secure Application Role uživatel může určité operace provádět jen pokud přistupuje z dané aplikace a nikoliv, pokud k přístupu použije třeba databázovou konzoli tyto role jsou pevně svázány s určitou databázovou package (knihovnou uložených procedur) a mohou být aktivovány pouze z této package. Databázové systémy 2 - př. 1 18
19
Bezpečnostní mechanismy Oracle Mechanismus Virtual Private Database (VPD) VPD zajišťuje automatické a transparentní doplnění jakéhokoliv dotazu o bezpečnostní podmínku. Ta pak omezuje data, se kterými uživatel může pracovat. I když tedy dva uživatelé zadají stejný dotaz (například výpis celé tabulky), může každý získat jiná data Např. uživatelé z různých oddělení mohou pracovat pouze se svými daty, i když jsou data celého podniku ve stejné tabulce Databázové systémy 2 - př. 1 19
20
Bezpečnostní mechanismy Oracle Mechanismus Oracle Label Security Option Každý záznam je označen štítkem určujícím jeho citlivost. Každý uživatel má na druhé straně definovány bezpečnostní úrovně, se kterými může pracovat. Databáze Oracle pak zajistí, že uživatel může pracovat pouze s těmi daty, jejichž citlivost odpovídá jeho úrovni. Databázové systémy 2 - př. 1 20
21
Bezpečnostní mechanismy Oracle Mechanismus Oracle Advanced Security Option (ASO) V rámci ASO je možné využít pokročilé metody ověřování, jako jsou třeba klientské SSL certifikáty, nebo využití různých autentizačních služeb postavených na standardech Kerberos či RADIUS. Pomocí těchto služeb lze například zajistit ověřování pomocí různých elektronických karet nebo biometrických údajů. Databázové systémy 2 - př. 1 21
22
Bezpečnostní mechanismy Oracle Mechanismus Proxy Authentication Problém s identifikací uživatelů však může nastat u webových aplikací, kdy se aplikace do databáze přihlašuje stále pod stejným jménem a heslem. Databáze totiž neví, kdo s ním skutečně pracuje, což blokuje řadu jejích bezpečnostních funkcí. Mechanismus Proxy Authentication aplikaci sice umožní přistupovat do databáze stále pod stejným jménem a heslem (a ušetřit tak čas na vytvoření spojení), avšak zároveň dovoluje předat informace o skutečném uživateli, který s aplikací pracuje. Databázový systém pak tuto informaci využije při řízení přístupu i auditování. Databázové systémy 2 - př. 1 22
23
Bezpečnostní mechanismy Oracle Mechanismus Advanced Security Option pro šifrování Šifrování přenosu dat má za cíl zabránit odposlechnutí či dokonce pozměnění komunikace. Šifrování komunikace je přitom transparentní pro samotnou aplikaci – neznamená nutnost zásahu do kódu aplikace. Kromě SSL existují i další techniky. Nástroje pro výběrové programové šifrování a dešifrování dat pomocí standardních algoritmů (DES, 3DES, AES a MD5) umožňují zašifrovat obzvláště citlivá data (rodná čísla, čísla kreditních karet). Možnost šifrování dat v tabulkách, které je transparentní z pohledu aplikace, nastavuje se deklarativně při definici tabulky. Tento mechanismus chrání před unikem dat při přístupu obcházejícím databázový server – např. kopírováním datových souborů, nebo zcizením záložních médií. Databázové systémy 2 - př. 1 23
24
Bezpečnostní mechanismy Oracle Mechanismus Fine Grained Auditing (FGA) Nedílnou součástí bezpečnostních mechanismů je i možnost auditování operací prováděných jednotlivými uživateli. Základní auditovací mechanismy většinou vytvářejí velký objem záznamů – nepřehledné, těžce zpracovatelné – proto Oracle vyvinul FGA. FGA umožňuje detailně určit jakých dat se má operace týkat specifikací sloupce tabulky a podmínky. Pouze pokud se v rámci uživatelem prováděné operace začne pracovat se záznamem splňujícím podmínku a je vrácena informace z definovaného sloupce, je tato operace zapsána do auditovacího logu. Při takové události je možné spustit i uloženou proceduru, která zajistí patřičnou reakci – například zašle SMS správci databáze. Databázové systémy 2 - př. 1 24
25
Bezpečnostní mechanismy Oracle Mechanismus Oracle Internet Directory (OID) Standardní správa uživatelů vyžaduje aktualizace uživatelů v mnoha systémech při odchodech či nástupech zaměstnanců do zaměstnání a změnách funkcí zaměstnanců. Častým jevem je neaktuálnost uživatelských účtů a nezrušení jejich účtů v systémech. Řešením je centrální správa uživatelů na jednom místě, ze kterého si jednotlivé aplikace přebírají data pomocí standardu LDAP. V prostředí Oracle funkci tohoto centrálního prvku plní OID. Centrální správu uživatelů v OID lze samozřejmě využít i pro správu databázových uživatelů a rolí. Tato funkcionalita je označena jako Enterprise User Security. Databáze může přebírat nejen seznam uživatelů, ale může z OID získat i seznam rolí přiřazených uživatelům. Databázové systémy 2 - př. 1 25
26
Správa uživatelů Tradiční způsob Samostatná správa pro jednotlivé aplikace a komponenty Vysoké náklady na správu (duplikace práce) Nekonzistentní informace Pomalá reakce na změnu Riziko ponechání přístupu neoprávněné osobě Špatná kontrola Aplikace 1Aplikace 2Aplikace 3 Správa uživatelů Databázové systémy 2 - př. 1 26
27
Centrální evidence uživatelů Vyšší přehlednost Rychlejší reakce Efektivnější správa Aplikace 1Aplikace 2Aplikace 3 Adresářová služba (LDAP) Správa uživatelů Správa uživatelů Oracle Internet Directory LDAP v3 Uložení dat v Oracle DB Výkon Velké objemy dat Bezpečnost Dostupnost Oracle Internet Directory LDAP v3 Uložení dat v Oracle DB Výkon Velké objemy dat Bezpečnost Dostupnost Databázové systémy 2 - př. 1 27
28
Audit ADAPTERY Centrální správa identit v heterogenním prostředí LDAP V3 Oracle Internet Directory Personalistika Identity Management Server Samoobslužný webový přístup Administrátorské prostředí Aplikace ERP Aplikace CRM Vlastní aplikace EMail Operační systémy Oracle Virtual Directory Osvědčená Oracle Internet Directory a to nejlepší z Oblix, Phaos, Thor Technologies, OctetString Schvalovací procesy Databázové systémy 2 - př. 1 28
29
LDAP a jiné adresáře OS Systémy a úložištěAplikace ERPvlastníPersonální systém Mainframe Auditing a výkazy Definice a provoz automatizovaných procesů ZaměstnanciIT odděleníSOA aplikace Podřízené organizace Externí uživatelé Delegovaná správa SOA aplikace Občané Interní uživatelé Služba Identity Management Zabezpečení přístupu Ověření & jednotné přihlášení Autorizace Federovaná identita Adresářové služby LDAP adresář Metadata adresář Virtuální adresář Synchronizace s aplikacemi Obousměrná synchronizace Uživatelé, role, práva Nezávislé na cílové aplikaci Správa identit Delegovaná administrace Samoregistrace, uživatelská samoobsluha Správa uživatelů a skupin Monitoring a správa Oracle Identity Management Databázové systémy 2 - př. 1 29
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.