Virtuální privátní databáze

Podobné dokumenty
RNDr. Michal Kopecký, Ph.D. Department of Software Engineering, Faculty of Mathematics and Physics, Charles University in Prague

Virtual private database. Antonín Steinhauser

Virtual Private Database (VPD) Jaroslav Kotrč

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

Návrh a tvorba WWW stránek 1/14. PHP a databáze

KIV/ZIS cvičení 6. Tomáš Potužák

Práva a role. Martin Polák. NDBI013 Administrace Oracle

Audit DB. Referát. Vypracoval: Zdeněk Doležal MFF UK Praha 11/5/06

Administrace Oracle. Práva a role, audit

Administrace Oracle Práva a role, audit. Kukhar Maria

Text úlohy. Systémový katalog (DICTIONARY):

Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Kapitola 4. Úvod 11. Stručný úvod do relačních databází 13. Platforma 10g 23

8.2 Používání a tvorba databází

Databázové systémy, MS Access. Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1130_Databázové systémy, MS Access_PWP

Databáze II. 1. přednáška. Helena Palovská

6. blok část B Vnořené dotazy

Fyzické uložení dat a indexy

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

Stored Procedures & Database Triggers, Tiskové sestavy v Oracle Reports

4IT218 Databáze. 4IT218 Databáze

SQL v14. 4D Developer konference. 4D Developer conference 2015 Prague, CZ Celebrating 30 years

Databázové systémy. Cvičení 6: SQL

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.

Použití databází na Webu

Databáze I. Přednáška 6

Databázové systémy Cvičení 5.2

SQL - trigger, Databázové modelování

DUM 15 téma: Příkazy pro řízení přístupu

Zabezpečení proti SQL injection

5. POČÍTAČOVÉ CVIČENÍ

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.

Databáze pro evidenci výrobků

Úvod do databází. Modelování v řízení. Ing. Petr Kalčev

Jak efektivně ochránit Informix?

Úvod do databázových systémů

Úvod do databázových systémů

Jazyk SQL databáze SQLite. připravil ing. petr polách

Michal Krátký, Miroslav Beneš

Úvod do databázových systémů

Marketingová komunikace. 2. a 3. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK3PH (vm3aph)

Databáze SQL SELECT. David Hoksza

Databáze I. Přednáška 4

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava

Databáze v MS ACCESS

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MySQL základní pojmy, motivace Ing. Kotásek Jaroslav

Databázové systémy I

2. blok Zabezpečení a ochrana dat

B0M33BDT Technologie pro velká data. Supercvičení SQL, Python, Linux

Operátory ROLLUP a CUBE

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.

Databáze. Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu. Bedřich Košata

Obsah SLEDOVÁNÍ PRÁCE... 4

Marketingová komunikace. 2. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK1aPH/N9KMK1bPH (um1a1ph/um1b1ph)

Roční periodická zpráva projektu

Úvod do MS Access. Modelování v řízení. Ing. Petr Kalčev

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Databázové a informační systémy

Zabezpečení proti SQL injection

Stručný obsah. část III Aktualizace dat Kapitola 10: Aktualizace databáze 257 Kapitola 11: Integrita dat 275 Kapitola 12: Zpracování transakcí 307

Jaký je rozdíl v definicicíh VARCHAR2(20 BYTE) a VARCHAR2(20 CHAR):

6. blok část C Množinové operátory

Databázové systémy II. KIV/DB2 LS 2007/2008. Zadání semestrální práce

POSTUP PRO VYTVOŘENÍ STRUKTUR PRO UKLÁDÁNÍ RDF DAT V ORACLE

1. Webový server, instalace PHP a MySQL 13

Databázové systémy úvod

Microsoft Access. Typy objektů databáze: Vytvoření a návrh nové tabulky. Vytvoření tabulky v návrhovém zobrazení

Informační systémy ve zdravotnictví. 8. cvičení

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou

Sada 1 - PHP. 14. Úvod do jazyka SQL

RELAČNÍ DATABÁZOVÉ SYSTÉMY

Oracle XML DB. Tomáš Nykodým

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 26.3.

Administrace Oracle. Jan Šaršon. Audit databáze

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

Databázové systémy I. 1. přednáška

Úvod do databázových systémů

Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů

Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Jarkovský, L. Dušek, M. Cvanová. 5. Statistica

Internetová filmová databáze IFDB

Zápisování dat do databáze

RELAČNÍ DATABÁZE ACCESS

Objektově relační databáze a ORACLE 8

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

QAD Business Intelligence

DJ2 rekurze v SQL. slajdy k přednášce NDBI001. Jaroslav Pokorný

Databáze I. 5. přednáška. Helena Palovská

KIV/ZIS cvičení 5. Tomáš Potužák

Semináˇr Java X JDBC Semináˇr Java X p.1/25

Databázové systémy Cvičení 5.3

Úvod do databázových systémů. Ing. Jan Šudřich

Databáze I. Přednáška 7

Maturitní témata z předmětu PROGRAMOVÉ VYBAVENÍ pro šk. rok 2012/2013

1 Webový server, instalace PHP a MySQL 13

4. lekce Přístup k databázi z vyššího programovacího jazyka

Tvorba informačních systémů

Databáze I. 1. přednáška. Helena Palovská

Kapitola 1: Co je Microsoft Access? 27 Kapitola 2: Mnoho tváří aplikace Microsoft Access 41 Kapitola 3: Návrh databázové aplikace 75

George J. Klir. State University of New York (SUNY) Binghamton, New York 13902, USA

Transkript:

Virtuální privátní databáze umožňuje nastavit zásady v podobě predikátu (klauzule WHERE) připojených ke všem dotazům, které uživatelé zadávají do DB zabezpeční se vztahuje na data, nikoliv na aplikaci => data v dotazu jsou stejná bez ohledu na režim připojení (aplikace, SQL Tools, ovladač ODBC) při návrhu tabulek je vhodné počítat s tím, jak bude vypadat klauzule WHERE pro VPD

Vytváření VPD určení databázových objektů a jejich vztahů definování cílů z hlediska zásad zabezpečení vytvoření kontextu aplikace vytvoření balíčku nastavujícího kontext vytvoření funkce pro zásady připojení funkce pro zásady k tabulce nebo k pohledu

Určení DB objektů a jejich vztahů před zahájením vytváření VPD je třeba určit příslušné DB objekty, vztahy mezi nimi a klíče, které budou tvořit základ pro metodu zabezpečení například v lékařských záznamech může pacient prohlížet pouze svoje záznamy, v bance informace jenom o svém účtu a podobně

Definování cílů z hlediska zásad zabezpečení zásadu zabezpečnení je třeba definovat přesně, aby mohla být převedena do podmínky WHERE ke každé tabulce nebo pohledu může být definováno více zásad zabezpečení zásady se mohou lišit v závislosti na přihlášeném uživateli a jeho roli

Vytvoření kontextu aplikace aplikační kontext je pojmenovaná sada atributů a hodnot, které je možno nastavit a následně přiřadit k aktuální uživatelské relaci USERENV = výchozí kontext obsahující systémové informace o aktulání relaci pro vytvoření kontextu aplikace je nutné oprávnění CREATE ANY CONTEXT kontext musí mít unikátní název create context MEDICAL_SEC_CTX using MEDICAL_DEPT.MEDICAL_SEC;

Vytvoření balíčku nastavujícího kontext vytvořené kontexty zabudujeme do balíčku (package) vložením funkce, která vyhladá v dané tabulce záznamy splňující podmínky kontextu select PATIENT_ID into PATIENT_ID_VAR from PATIENT_PERSONAL_INFORMATION where PATIENT_USERNAME = SYS_CONTEXT('USERNV', 'SESSION_USER'); dbms_session.set_context('medical_sec_ctx', 'PATIENT_ID', 'PATIENT_ID_VAR'); funkce SYS_CONTEXT umožňuje získat další hodnoty zaměřené zabezpečení: authentication_data, authentication_type, bg_job_id, current_schema, current_user, current_userid, db_domain, db_name, entryid, external_name, fg_job_id, host, instance, isdba, network_protokol, os_user, proxy_user, session_user, session_userid, sessionid, terminal

Vytvoření funkce pro zásady funkce je přidružena k tabulce, jejíž čtení má omezovat doplňuje klauzuli WHERE ke všem dotazům i pro příkazy select, insert a delete modifikovaný dotaz je vyhodnocen a optimalizován v době analyzování příkazu MY_PREDIKAT := 'PATIENT_ID=SYS_CONTEXT(''MEDICAL_SEC_CTX'',''PATIENT_ID'')'; return MY_PREDIKAT; vrátí predikát do podmínky WHERE ve tvaru: PATIENT_ID = 12314564564;

Připojení funkce pro zásady k tabulce nebo k pohledu DBMS_RLS je balíček ke správě zabezpečení pro jeho používání musí mít uživatel právo EXECUTE prostřednictvím uživatele SYS ADD_POLICY přidá zásadu do tabulky DROP_POLICY odebere zásadu z tabulky REFRESH_POLICY vynutí opětovnou analýzu otevřených kurzorů přidružených k zásadě ENABLE_POLICY povolení/zákaz zásady

Fakultní pohledy v SIS Práce s DB rukcentral na UK je možno rozdělit do tří skupin: práce s EXE aplikacemi na SO a katedrách práce s webovými aplikacemi používání selectů oprávněnými uživateli nad fakultními pohledy jednak v EXE aplikaci, a dále pomocí SQL Tools

Tabulka TABSREPL

Definice fakultního pohledu CREATE OR REPLACE VIEW f_zktermin (... ) AS SELECT... FROM ZKTERMIN A WHERE ztfakulta = (SELECT xfakulta FROM xx WHERE xoident = (SELECT oident FROM osobauziv WHERE ologin = sys_context('userenv','session_user'))) / GRANT SELECT ON f_zktermin TO admimff WITH GRANT OPTION;

Vytváření fakultních pohledů obvnova všech najednou pohledy jsou vytvářeny v pořadí dle sloupce IOT a dle názvu tabulky tak, aby bylo zajištěno, že závislé pohledy se budou vytvářet až po vzniku předchozích vytvoření jednoho pohledu po jeho vzniku se znovu přeloží všechny pohledy s vyšším IOT

Použitá literatura: Kevin Loney, Marlene Theriault - Mistrovství v Oracle Kompletní průvodce tvrobou, správou a údržbou databází Tomáš Solař Oracle Database 11g zdrojové kódy společnosti Erudio, s.r.o. internet