7. Integrita a bezpečnost dat v DBS



Podobné dokumenty
7. Integrita a bezpečnost dat v DBS

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

6. SQL složitější dotazy, QBE

J. Zendulka: Databázové systémy 8 Zpracování dotazu Podstata optimalizace zpracování dotazu

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

Kapitola 6: Omezení integrity. Omezení domény

10. Architektura klient/server a třívrstvá architektura

10. Architektura klient/server a třívrstvá architektura

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

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

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

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

Jazyk SQL 3 - DML, DDL, TCL, DCL

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

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

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

3. Jazyky relačních databázových systémů

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL

J. Zendulka: Databázové systémy 4 Relační model dat 1

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

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

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

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

3. Jazyky relačních databázových systémů

SQL. strukturovaný dotazovací jazyk. Structured Query Language (SQL)

4. Relační model dat. J. Zendulka: Databázové systémy 4 Relační model dat 1

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

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

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

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

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

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

A5M33IZS Informační a znalostní systémy. Relační databázová technologie

Databázové systémy. Integritní omezení. Vilém Vychodil. V. Vychodil (KMI/DATA1, Přednáška 9) Integritní omezení Databázové systémy 1 / 33

Databáze 2011/2012 SQL DDL (CREATE/ALTER/DROP TABLE), DML (INSERT/UPDATE/DELETE) RNDr.David Hoksza, Ph.D.

2. blok Zabezpečení a ochrana dat

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

6. Fyzická (interní) úroveň databázového systému

6. Fyzická (interní) úroveň databázového systému

Jazyk SQL slajdy k přednášce NDBI001

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

Databázové systémy trocha teorie

Relace x vztah (relationship)

12. blok Fyzický návrh databáze

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

Administrace Oracle. Práva a role, audit

Databázové systémy a SQL

4IT218 Databáze. 4IT218 Databáze

1 Úvod. J. Zendulka: Databázové systémy - 1 Úvod 1

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

J. Zendulka: Databázové systémy - 1 Úvod Intuitivní vymezení pojmu databáze

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

Transformace konceptuálního modelu na relační

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

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

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

Semestrální práce z DAS2 a WWW

Relační databázová technologie

Primární klíč (Primary Key - PK) Je právě jedna množina atributů patřící jednomu z kandidátů primárního klíče.

Deklarativní IO shrnutí minulé přednášky

Konceptuální modelování a SQL

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

Vzorové příklady SQL. Tabulka: Kniha CREATE TABLE kniha (id INTEGER, název VARCHAR(50), PRIMARY KEY (id))

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

5. Formalizace návrhu databáze

RELAČNÍ DATABÁZOVÉ SYSTÉMY

SQL. Pohledy, ochrana dat,... Pavel Tyl

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

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

- sloupcové integritní omezení

Databázové systémy I

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

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

9. Transakční zpracování

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

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

Databázové systémy I

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

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

Tabulka fotbalové ligy

Použití databází na Webu

5. Formalizace návrhu databáze

Operátory ROLLUP a CUBE

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

Dotazy v SQL. Výraz relační algebry R1( )[A1,A2,...,Aj] lze zapsat takto: SELECT A1,A2,...,Aj FROM R1 WHERE. Výraz (R1, R2... Rk)( )[A1,A2,...

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

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

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

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

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

Oracle XML DB. Tomáš Nykodým

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

2-3 hodiny. Při studiu tohoto bloku se předpokládá, že čtenář je obeznámen s jazykem SQL a zná základy jazyka PL/SQL.

Databáze SQL SELECT. David Hoksza

Tvorba aplikací v Oracle Application Express

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

Základy informatiky. 06 Databázové systémy. Kačmařík/Szturcová/Děrgel/Rapant

DUM 12 téma: Příkazy pro tvorbu databáze

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

UNIVERZITA PALACKÉHO V OLOMOUCI

Transkript:

7. Integrita a bezpečnost dat v DBS 7.1. Implementace integritních omezení... 2 7.1.1. Databázové triggery... 5 7.2. Zajištění bezpečnosti dat... 12 7.2.1. Bezpečnostní mechanismy poskytované SŘBD... 13 Literatura... 16 J. Zendulka: Databázové systémy 7 Integrita a bezpečnost dat v DBS 1 7.1. Implementace integritních omezení Podpora SŘBD Podpora pro integritní omezení zahrnutá v SQL/92 Omezení domén CREATE DOMAIN doména [AS] dat_typ [impl_hodnota] [seznam_omezení_domény] Omezení domény [CONSTRAINT jm_omezení] CHECK (podmíněný_výraz) Př) CREATE DOMAIN barva CHAR[8] CONSTRAINT icbarva CHECK (VALUE IN ( černá, bílá, modrá, červená )) J. Zendulka: Databázové systémy 7 Integrita a bezpečnost dat v DBS 2

Všeobecná omezení CREATE ASSERTION jm_omezení CHECK (podmíněný_výraz) Př) CREATE ASSERTION icpocet CHECK (NOT EXISTS (SELECT r_cislo FROM Ucet GROUP BY r_cislo HAVING COUNT(*)>5)) Omezení bázové tabulky - Součást příkazu CREATE TABLE, resp. ALTER TABLE: [CONSTRAINT jm_omezení] definice_omezení - definice omezení pro kandidátní klíče - UNIQUE, - definice omezení pro primární klíče - PRIMARY KEY, - definice omezení pro cizí klíče - FOREIGN KEY - definice omezení typu CHECK: CHECK (podmíněný_výraz) Př) CREATE TABLE Transakce(... CHECK (castka -100000),...) J. Zendulka: Databázové systémy 7 Integrita a bezpečnost dat v DBS 3 - Omezení sloupců bázové tabulky - NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY REFERENCES..., omezení typu CHECK: CHECK (podmíněný_výraz) režim kontroly omezení: o IMMEDIATE - okamžitá kontrola o DEFERRED - kontrola na závěr transakce. Používáme, pokud připustíme přechodnou nekonzistenci v průběhu transakce. - specifikuje se v definici omezení nebo příkazem SET CONSTRAINTS Databázové triggery (viz dále) Kontroly naprogramované v aplikaci Kontroly naprogramované v klientské části aplikace, typicky s podporou vývojových prostředí: - kontrola vstupů - omezení zabudovaná v definicích formulářů - naprogramované kontroly pro určité události uživatelského rozhraní (triggery rozhraní) J. Zendulka: Databázové systémy 7 Integrita a bezpečnost dat v DBS 4

7.1.1. Databázové triggery - není součástí SQL/92, je součástí SQL/99 Databázový trigger je databázový objekt obsahující kód spouštěný specifikovanou událostí v databázi. Složky příkazu vytvoření databázového triggeru - jméno triggeru, - jméno tabulky jméno [REFERENCING alias_pro_old_a_new], - čas spuštění akce BEFORE/AFTER, - událost INSERT/DELETE/UPDATE [OF sloupec, ], - spouštěná akce FOR EACH {ROW STATEMENT} [WHEN podmínka] spouštěný_sql_příkaz Typy databázového triggeru příkazový, řádkový Poznámka: Databázový trigger je něco jiného, než klientské části aplikace, který se spouští typicky událostí formuláře (např. stisk tlačítka) nebo tiskové sestavy (např. nová stránka)). J. Zendulka: Databázové systémy 7 Integrita a bezpečnost dat v DBS 5 Databázové triggery v prostředí ORACLE Typ INSTEAD OF slouží k aktualizaci neaktualizovatelných pohledů J. Zendulka: Databázové systémy 7 Integrita a bezpečnost dat v DBS 6

Př) Ustav zkratka jmeno areal Areal nazev Možná implementace ON UPDATE CASCADE (Oracle podporuje jen ON DELETE CASCADE) adresa CREATE OR REPLACE TRIGGER aktualizuj_ustav AFTER UPDATE OF nazev ON Areal REFERENCING OLD AS puvodni NEW AS novy FOR EACH ROW BEGIN UPDATE Ustav SET areal = :novy.nazev WHERE areal = :puvodni.nazev; END; J. Zendulka: Databázové systémy 7 Integrita a bezpečnost dat v DBS 7 Možná implementace ON DELETE SET NULL (Oracle nepodporuje) CREATE OR REPLACE TRIGGER nuluj_ustav AFTER DELETE ON Areal FOR EACH ROW BEGIN UPDATE Ustav SET areal = NULL WHERE areal = :old.nazev; END; J. Zendulka: Databázové systémy 7 Integrita a bezpečnost dat v DBS 8

Omezení příkazů v těle triggeru J. Zendulka: Databázové systémy 7 Integrita a bezpečnost dat v DBS 9 Model spouštění triggerů a provádění kontrol integritních omezení 1. Proveď všechny BEFORE příkazové triggery platné pro daný příkaz; 2. LOOP FOR EACH řádek ovlivněný SQL příkazem DO a) Proveď všechny BEFORE řádkové triggery platné pro daný příkaz; b) Uzamkni a změň řádek a proveď kontrolu integritních omezení; (Zámek není uvolněn, dokud není transakce potvrzena.) c) Proveď všechny AFTER řádkové triggery platné pro daný příkaz; 3. Dokonči odloženou kontrolu integritních omezení; 4. Proveď všechny AFTER příkazové triggery platné pro daný příkaz; J. Zendulka: Databázové systémy 7 Integrita a bezpečnost dat v DBS 10

Triggery SQLBase J. Zendulka: Databázové systémy 7 Integrita a bezpečnost dat v DBS 11 7.2. 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 J. Zendulka: Databázové systémy 7 Integrita a bezpečnost dat v DBS 12

7.2.1. Bezpečnostní mechanismy poskytované SŘBD Pohledy Řízení přístupu Existují dva hlavní způsoby řízení přístupu: nepovinné (discretionary access control) - založen na přístupových právech. Každému uživateli jsou přiřazena přístupová práva k databázovým objektům. povinné (mandatory) - založen na bezpečnostních třídách (stupních utajení) objektů, stupních prověření subjektů, a pravidlech provádění operací. - SQL poskytuje podporu pro nepovinné řízení. - pro některé SŘBD existují i verze poskytující podporu povinného řízení J. Zendulka: Databázové systémy 7 Integrita a bezpečnost dat v DBS 13 Typické prostředky pro řízení přístupových práv: definice uživatelů, případně skupin uživatelů (role u Oracle) Př) Oracle CREATE USER přihl_jméno IDENTIFIED {BY heslo EXTERNALLY}... systémová přístupová práva Př) Oracle, SQLBase GRANT úroveň_oprávnění TO seznam_uživatelů REVOKE úroveň_oprávnění FROM seznam_uživatelů - úrovně v SQLBase: CONNECT, RESOURCE, DBA - Oracle: úroveň např. CREATE TABLE, - uživatel PUBLIC - možnost vytvářet role: CREATE ROLE jméno_role [{NOT IDENTIFIED IDENTIFIED {BY heslo EXTERNALLY}}] - role vytvořené při instalaci: CONNECT, RESOURCE, DBA,... - příkazem GRANT lze přiřadit uživateli také roli J. Zendulka: Databázové systémy 7 Integrita a bezpečnost dat v DBS 14

přístupová práva k databázovým objektům (je v SQL/92) GRANT seznam_oprávnění ON db_objekt TO {seznam_uživatelů PUBLIC} [WITH GRANT OPTION] REVOKE seznam_oprávnění ON db_objekt FROM {seznam_uživatelů PUBLIC} [RESTRICT CASCADE] - často i pouze pro sloupce tabulky nebo pohledu (ne v SQL/92) Př) SELECT, UPDATE, INDEX, EXECUTE,... šifrování přihlašovacího jména a hesla při přenosu po síti šifrování dat v databázi záznamy o manipulacích (audit) J. Zendulka: Databázové systémy 7 Integrita a bezpečnost dat v DBS 15 Literatura 1. Silberschatz, A., Korth H.F, Sudarshan, S.:Database System Concepts. Fourth Edition. McGRAW-HILL. 2001, str. 225 255. 2. Pokorný, J.: Databazová abeceda. Science, Veletiny, 1998, str. 89 92, 141 144, 197 200. 3. Oracle9i Application Developer s Guide - Fundamentals. Oracle Corp. March 2002, str. 15-1 15-54. J. Zendulka: Databázové systémy 7 Integrita a bezpečnost dat v DBS 16