Virtual Private Database (VPD) Jaroslav Kotrč

Podobné dokumenty
Virtual private database. Antonín Steinhauser

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

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

Virtuální privátní databáze

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

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

Operátory ROLLUP a CUBE

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

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

Inovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav

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

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

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

Embedded SQL v C/C++ III - pole, struktury. Jindřich Vodrážka

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

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

Využití XML v DB aplikacích

Oracle XML DB. Tomáš Nykodým

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

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

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

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

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

Semestrální práce z DAS2 a WWW

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

O Apache Derby detailněji. Hynek Mlnařík

Verzování a publikace dat na webu za pomoci PostgreSQL

Databázové systémy I

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

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

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

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

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

Tabulka fotbalové ligy

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

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

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

PRŮBĚHOVÝ TEST Z PŘEDNÁŠEK

Univerzita Pardubice. Fakulta elektrotechniky a informatiky SEMESTRÁLNÍ PRÁCE PRO PŘEDMĚT IDAS2

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

Administrace Oracle. Práva a role, audit

Použití databází na Webu

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

Tvorba informačních systémů

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

PG 9.5 novinky ve vývoji aplikací

KMI / TMA Tvorba mobilních aplikací. 6. seminář ZS 2016/2017 Středa 13:15-15:45

4IT218 Databáze. 4IT218 Databáze

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

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

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

Základní přehled SQL příkazů

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

Michal Krátký, Miroslav Beneš

Novinky v PostgreSQL 9.4. Tomáš Vondra, 2ndQuadrant

Užití SQL ve 4D v14-15

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

1. Webový server, instalace PHP a MySQL 13

Databáze 2011/2012 T-SQL - kurzory, funkce. RNDr.David Hoksza, Ph.D.

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

Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky. 9. června krovacek@students.zcu.cz

4. blok část A Logické operátory

TimescaleDB. Pavel Stěhule 2018

Tento blok je věnován vytváření uživatelských balíků funkcí v jazyce PL/SQL a použití systémových balíků. 2-3 hodiny

UNIVERZITA PARDUBICE Fakulta elektrotechniky a informatiky. Databázová aplikace pro evidenci mechatronických stavebnic Michal Grof

Ukládání a vyhledávání XML dat

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

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

SII - Informatika. 1. Atribut relace, jehož hodnota jednoznačně určuje prvek v jiné relaci, se nazývá:

Distanční opora předmětu: Databázové systémy Tématický blok č. 8: Transact SQL Autor: RNDr. Jan Lánský, Ph.D.

DATABÁZOVÉ A INFORMAČNÍ SYSTÉMY

Vkládání, aktualizace, mazání

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

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

Databázové a informační systémy Jana Šarmanová

Databázové systémy a SQL

Obsah. Začínáme programovat v Ruby on Rails 9. Úvod Vítejte v Ruby 15. O autorovi 9 Poděkování 9

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

Základy informatiky. 08 Databázové systémy. Daniela Szturcová

Databáze SQL SELECT. David Hoksza

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

B Organizace databáze na fyzické úrovni u serveru Oracle

Stěhování aplikací. Michal Tomek, Sales Manager

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

Informační systémy 2008/2009. Radim Farana. Obsah. Základní principy XML

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

KIV/ZIS - SQL dotazy. stáhnout soubor ZIS- 04_TestovaciDatabaze accdb. SQL dotazy. budeme probírat pouze SELECT

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

1 Tabulky Příklad 3 Access 2010

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

Univerzita Pardubice. Fakulta elektrotechniky a informatiky

8. Zpracování dotazu. J. Zendulka: Databázové systémy 8 Zpracování dotazu 1

Bezpečnosť v databáze Oracle

Novinky v Microsoft SQL Serveru RNDr. David Gešvindr MVP: Data Platform MCSE: Data Platform MCSD: Windows Store MCT

Struktura pamětí a procesů v DB Oracle. Radek Strnad

Optimalizace dotazů a databázové transakce v Oracle

KAPITOLA 1 Představení platformy Microsoft SQL Server 2008

Tvorba informačních systémů

Fakulta elektrotechniky a informatiky Databázové systémy 2. Leden 2010 souhrn. Červené dobře (nejspíš), modré možná

Transkript:

Virtual Private Database (VPD) Jaroslav Kotrč

Co je VPD Bezpečnostní politika pro přístup k databázi na úrovni řádků a sloupců. Bezpečnost přímo nad tabulkami. Není způsob, jak to obejít. SQL dotaz upraven přidáním podmínky WHERE Podmínka dynamicky generovaná funkcí implementující bezpečnostní politiku. Transparentní pro uživatele

Výhody použití VPD Bezpečnostní politika založená na databázových objektech. Místo aby si ji každá aplikace musela implementovat sama. Vyšší bezpečnost Uživatel nemůže obejít aplikaci. Jednoduchost Flexibilita Možnost mít jiná omezení pro SELECT, UPDATE, INSERT, Kontrola nad vyhodnocováním bezpečnostních funkcí. Static policies Context-sensitive policies Dynamic policies

VPD a kontext aplikace Kontext aplikace uchovává informace o uživateli. Rychlejší než provádění dotazů. Vhodné zejména pro bezpečnostní politiku založenou na více atributech.

Komponenty VPD Funkce generující WHERE klauzuli Argumenty jsou jméno schématu a jméno objektu Návratová hodnota - WHERE klauzule typu VARCHAR2 Musí generovat korektní WHERE klauzuli Lze vložit C nebo Java volání k přístupu k informacím OS nebo vracet klauzuli ze souboru. Politika přidělující funkci objektům Pro vytvoření je potřeba balíček DBMS_RLS. Manipulace s jednotlivými politikami, skupinami politik a kontextem aplikace. Jsou potřeba práva SYS nebo aspoň EXECUTE.

Vytvoření funkce Příklad pro funkci vracející podmínku na číslo oddělení deptno: CREATE OR REPLACE FUNCTION hide_sal_comm ( v_schema IN VARCHAR2, v_objname IN VARCHAR2) RETURN VARCHAR2 AS con VARCHAR2 (200); BEGIN con := 'deptno=30'; RETURN (con); END hide_sal_comm;

VPD politika Přiřazení politiky k tabulce: BEGIN DBMS_RLS.ADD_POLICY ( object_schema => 'scott', object_name => 'emp', policy_name => 'hide_sal_policy', policy_function => 'hide_sal_comm', sec_relevant_cols => 'sal,comm'); END; statement_types Uživatel s právy držení indexu může vidět všechny řádky, i když na ně nemá právo SELECT. Politika umožní vidět plat jen uživatelům podle omezení funkce.

Chování VPD Zobrazí jen ty řádky, u kterých má uživatel práva přístupu ke všem atributům. Maskování NULL hodnotou. sec_relevant_cols_opt => dbms_rls.all_rows Používá se jen pro SELECT.

VPD Policy Groups Jednotlivé politiky lze seskupit dohromady. DBMS_RLS.ADD_GROUPED_POLICY Použijí se všechny politiky ve skupině. Spojení v dotazu pomocí operátoru AND Vhodné pokud více aplikací sdílí stejné tabulky s různými bezpečnostními politikami. Aplikace si sama vybere, kterou skupinu politik bude používat. DBMS_RLS.ADD_POLICY_CONTEXT Pokud je kontext NULL použijí se všechny skupiny. Validace aplikace Výchozí skupina SYS_DEFAULT Používá se vždy, lze k ní přidat další.

Optimalizace VPD (1) Nastavení typu politiky (parametr policy_type) DYNAMIC Výchozí typ Spouští funkci politiky při každém přístupu Doporučené pro testování STATIC Uloží výstup funkce do SGA Použije uloženou hodnotu pro všechny přístupy. SHARED_STATIC Jako STATIC, ale sdílí se i mezi více databázovými objekty.

Optimalizace VPD (2) CONTEXT_SENSITIVE Spouští funkci při změně lokálního kontextu aplikace, jinak použije uložený výsledek. Vhodné pokud se výsledek funkce nemění v rámci jednoho připojení, ale je odlišný pro různé uživatele. SHARED_CONTEXT_SENSITIVE Jako CONTEXT_SENSITIVE, ale sdílí se i mezi více objekty.

Omezení při užití VPD Nemělo by se používat FOR UPDATE v příkazu SELECT Vnější spojení Flashback Query Aktuální politika se použije pro stará data. Direct path export dat nespouští politiky. Nelze aplikovat politiky na objekty ve schématu SYS. Uživatelé s právem EXEMPT ACCESS POLICY nepodléhají VPD omezením.

Příklady kotrj7am.kotrj7am_vpd Bez politiky kotrj7am.kotrj7am_vpd1 Politika zobrazující jen povolené řádky Funkce s podmínkou username='miller' kotrj7am.kotrj7am_vpd2 Funkce s podmínkou department=1, politika stejná. kotrj7am.kotrj7am_vpd3 Politika s nastaveným citlivým sloupcem na salary Funkce s podmínkou department=1. kotrj7am.kotrj7am_vpd4 Jako předchozí, ale citlivé údaje nastaví na NULL.

Zdroje http://download.oracle.com/docs/cd/e11882_01/networ k.112/e16543/vpd.htm#dbseg007