Fakulta elektrotechniky a informatiky david.zak@upce.cz Databázové systémy II Přednáška č. 1 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky david.zak@upce.cz
Databázové systémy 2 - př. 1 Náplň předmětu IDAS2 Konzolové aplikace sqlplus, iSQL*Plus. Nástroj SQL developer. Zabezpečení a ochrana dat – uživatelské účty, systémová a objektová oprávnění, role, profily. Transakce, návratové body, automatické zamykání, konzistentní čtení. Přístup k databázi z vyššího programovacího jazyka. Bezpečnost a SQL injection. Databázové systémy 2 - př. 1
Databázové systémy 2 - př. 1 Náplň předmětu IDAS2 Jazyk PL/SQL, proměnné, syntaxe bloku, operátory. Řízení toku programu - podmínky, cykly, kurzory, záznamy, ošetření chyb. Systémové jednotky DBMS_OUTPUT a DBMS_RANDOM. Procedury a funkce, balíky procedur. Triggery a jejich využití. Databázové systémy 2 - př. 1
Databázové systémy 2 - př. 1 Náplň předmětu IDAS2 Export a import dat, práce s textovými soubory a XML dokumenty. Normální formy, dekompozice, normalizace. Databázové systémy 2 - př. 1
Plán práce na cvičeních Logický a fyzický návrh modelu databáze Práce se systémovým katalogem Opakování DML – dotazy střední náročnosti Transakce, systémová a objektová práva Databázové systémy 2 - př. 1
Plán práce na cvičeních PL/SQL - tvorba bloku a spuštění kódu, balíček DBMS_OUTPUT PL/SQL - procedury a funkce, primitivní balíček, ošetření výjimky PL/SQL - triggery pro úpravu vkládaných dat do DTB, pokročilé hlídání konzistence FK a PK, logování událostí PL/SQL - opakování, práce s hodnotami NULL a datumem a časem v různých formátech Hierarchické dotazy Analytické funkce Databázové systémy 2 - př. 1
Plán práce na cvičeních Průběžně na všech cvičeních: Testy (opakování) Konzultace semestrální práce Kontrola řešení semestrální práce (rozpracovanosti) Zápočet je třeba získat a zapsat do STAGu i indexu do 2 týdnů od ukončení výukového období. V tomto období budou vypsány i 2 náhradní termíny pro opakování zápočtových testů. Databázové systémy 2 - př. 1
Doporučená literatura Lacko, L. Oracle, správa, programování a použití databázového systému. Computer Press, 2007. Urman, S., Hardman, R., McLaughlin, M.: Oracle - programování v PL/SQL. Computer Press, 2008. Groff, J.R., Weinberg, P.N.: SQL - kompletní průvodce. Computer Press, 2005. Stephens, K.R., Plew, R.R.: Naučte se SQL za 21 dní. Computer Press, 2004. Opel, A.: Databáze bez předchozích znalostí. Computer Press, 2006. Databázové systémy 2 - př. 1
Databázové systémy 2 - př. 1 Obsah Systémový katalog Zajištění bezpečnosti dat Databázové systémy 2 - př. 1
Systémový katalog (Datový slovník) Systémový katalog (Oracle Data Dictionary) se skládá z tabulek a pohledů poskytujících informace o databázi, ty jsou uloženy v tabulkovém prostoru SYSTEM, slovník se skládá z: základní tabulky (typicky x$…) uchovávají informace o databázi pouze Oracle by měl zapisovat a číst do/z těchto tabulek, protože jsou normalizované, na některých systémech může dotaz nad takovou tabulkou shodit databázi jsou důležité pro správnou funkčnost databáze pohledy tyto pohledy shromažďují a zobrazují v čitelné podobě informace uložené v základních tabulkách katalogu (např. DBA_TABLES) Všechny tabulky i pohledy vlastní uživatel SYS. Databázové systémy 2 - př. 1
Systémový katalog (Datový slovník) Systémový katalog má tři základní použití: Oracle zde hledá informace o uživatelích, objektech a strukturách používané pro ukládání (storage structures). Oracle jej mění po každém DDL příkazu. Libovolný uživatel si jej může prohlížet (to, na co má práva). Při databázových operacích Oracle zjišťuje, zda objekty existují a zda má na ně uživatel právo. Oracle vytváří public synonyma pro mnoho pohledů systémového katalogu, aby se na ně uživatel nemusel odkazovat včetně uvádění schématu. Další produkty Oracle mohou odkazovat na současné pohledy, ale vytvořit si i nové tabulky a pohledy. Ne všechna data jsou dostupná všem uživatelům Databázové systémy 2 - př. 1
Systémový katalog (Datový slovník) systémový katalog je složen z množin pohledů. V mnoha případech mají množiny tři podobné pohledy lišící se v názvu prefixem: USER_ – všechny objekty, které uživatel vlastní ALL_ – všechny objekty, ke kterým má uživatel přístup DBA_ – všechny objekty (pohledy pro DBA) sloupce v každé množině jsou identické s následujícími výjimkami: pohledy s prefixem USER většinou nemají sloupce OWNER (očekává se, že vlastníkem je uživatel, který dotaz spustil) některé DBA pohledy mají další sloupce navíc s informacemi užitečnými pro DBA některé tabulky (např. USER/ALL/DBA_USERS) Databázové systémy 2 - př. 1
Systémový katalog (Datový slovník) Příklady názvů pohledů: Databázové systémy 2 - př. 1
Systémový katalog (Datový slovník) Zjištění různých pohledů systémového katalogu a jejich významu: SELECT * FROM dictionary ORDER BY table_name Lze omezit např.: SELECT table_name, comments FROM dictionary WHERE table_name LIKE '%TABLE%' ORDER BY table_name Popisy sloupců lze najít takto: SELECT column_name, comments FROM dict_columns WHERE table_name = 'ALL_TAB_COLUMNS' Databázové systémy 2 - př. 1
Systémový katalog (Datový slovník) Příklady často používaných synonym: CAT synonymum pro pohled USER_CATALOG DICT DICTIONARY OBJ USER_OBJECTS SYN USER_SYNONYMS TABS USER_TABLES Databázové systémy 2 - př. 1
Systémový katalog (Datový slovník) Příklady pohledů (synonymum) CATALOG (ALL_, DBA_, USER_ (CAT)) Informace o databázových tabulkách, pohledech, synonymech a sekvencích CONSTRAINTS (ALL_, DBA_, USER_) Informace o integritních omezeních databáze INDEXES (ALL_, DBA_, USER_, (IND)) Informace o indexech v databázi OBJECTS (ALL_, DBA_, USER_, (OBJ)) Informace o databázových objektech Databázové systémy 2 - př. 1
Systémový katalog (Datový slovník) Příklady pohledů (synonymum) ROLE_PRIVS (DBA_, USER_) Informace o rolích přidělených uživateli TABLES (ALL_, DBA_, USER_, (TABS)) Informace o tabulkách v databázi USERS (ALL_, DBA_, USER_) Informace o uživatelích v databázi VIEWS (ALL_, DBA_, USER_) Informace o pohledech v databázi Databázové systémy 2 - př. 1
Systémový katalog (Datový slovník) Příklady pohledů (synonymum) DATA_FILES (DBA_) Informace o datových souborech databáze LOCKS (DBA_) Informace o DLL a DML uzamčeních v databázovém serveru ROLE_PRIVS (DBA_, USER_) Informace o rolích přidělených uživateli SOURCE (ALL_, DBA_, USER_) Zdrojové texty uložených procedur, funkcí, specifikací a těl balíků v databázi Databázové systémy 2 - př. 1
Systémový katalog (Datový slovník) Příklady pohledů (synonymum) DEPENDENCIES (ALL_, DBA_, USER_) Informace o závislostech mezi objekty v databázi TABLESPACES (DBA_, USER_) Informace o tabulkových prostorech databáze TRIGGERS (ALL_, DBA_, USER_) Informace o triggerech v databázi V$TRANSACTION Informace o aktuálně prováděných databázových transakcích Databázové systémy 2 - př. 1
Systémový katalog (Datový slovník) Příklady: SELECT name, type, referenced_name, referenced_type FROM user_dependencies WHERE referenced_owner=user order by name; SELECT object_name, object_type, status FROM user_objects; SELECT tablespace_name FROM user_indexes WHERE index_name = ‘idx_name’; Databázové systémy 2 - př. 1
Spojování pohledů syst. katalogu Příklad – zjištění názvů sloupců ve schématu A_HR, které jsou typu NUMBER a jsou součástí primárních klíčů tabulek SELECT column_name, table_name, data_type FROM all_constraints JOIN all_cons_columns using (constraint_name, owner, table_name) JOIN all_tab_cols using (owner, table_name, column_name) WHERE owner='A_HR' AND constraint_type='P' AND data_type = 'NUMBER'; Databázové systémy 2 - př. 1
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
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
Databázové systémy 2 - př. 1 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 <user_name> IDENTIFIED BY <new_password> 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
Databázové systémy 2 - př. 1 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 <user_name> IDENTIFIED BY <new_password> DEFAULT TABLESPACE <def_tablespace> TEMPORARY TABLESPACE <temp_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
Databázové systémy 2 - př. 1 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 <user_name> IDENTIFIED BY <new_password>; Příklad ALTER USER JNOVAK IDENTIFIED BY sdf45t; Databázové systémy 2 - př. 1
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
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
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
Databázové systémy 2 - př. 1 Objektová práva Tabulky, pohledy: ALTER DELETE INDEX INSERT UPDATE SELECT REFERENCES … Procedury, funkce: EXECUTE DEBUG Databázové systémy 2 - př. 1
Databázové systémy 2 - př. 1 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
Databázové systémy 2 - př. 1 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
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
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
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
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
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
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
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
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
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
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
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
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
Správa uživatelů Tradiční způsob Aplikace 1 Aplikace 2 Aplikace 3 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 Správa uživatelů Správa uživatelů Správa uživatelů Správa uživatelů Správa uživatelů Databázové systémy 2 - př. 1
Centrální evidence uživatelů Oracle Internet Directory LDAP v3 Uložení dat v Oracle DB Výkon Velké objemy dat Bezpečnost Dostupnost Aplikace 1 Aplikace 2 Aplikace 3 Adresářová služba (LDAP) Správa uživatelů Správa uživatelů Vyšší přehlednost Rychlejší reakce Efektivnější správa Databázové systémy 2 - př. 1
Centrální správa identit v heterogenním prostředí Samoobslužný webový přístup Administrátorské prostředí Personalistika Schvalovací procesy Audit Identity Management Server Oracle Virtual Directory ADAPTERY Aplikace ERP Aplikace CRM Vlastní aplikace EMail Operační systémy LDAP V3 Oracle Internet Directory Osvědčená Oracle Internet Directory a to nejlepší z Oblix, Phaos, Thor Technologies, OctetString Databázové systémy 2 - př. 1
Oracle Identity Management Externí uživatelé Interní uživatelé SOA aplikace Delegovaná správa Občané Podřízené organizace IT oddělení Zaměstnanci SOA aplikace Služba Identity Management Zabezpečení přístupu Ověření & jednotné přihlášení Autorizace Federovaná identita Správa identit Delegovaná administrace Samoregistrace, uživatelská samoobsluha Správa uživatelů a skupin Auditing a výkazy Monitoring a správa Definice a provoz automatizovaných procesů 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 ARCHITECTURE SLIDE Aplikace Systémy a úložiště ERP vlastní OS Personální systém Mainframe LDAP a jiné adresáře Databázové systémy 2 - př. 1