Databázové systémy Zabezpečení DBS. Cíle, které je třeba vzít v úvahu při návrhu databázové aplikace z pohledu bezpečnosti: Důvěrnost - informace by neměly.

Slides:



Advertisements
Podobné prezentace
Databázové systémy Zabezpečení DBS. Cíle, které je třeba vzít v úvahu při návrhu databázové aplikace z pohledu bezpečnosti: •Důvěrnost - informace by.
Advertisements

Co je to uživatelské menu? Ve WinBase si můžeme ke každé aplikaci vytvořit vlastní menu, které po otevření nahradí standardní menu WinBase. Toto uživatelské.
Základy jazyka SQL Jan Tichava
Ladislav Hofman, Jan Slavík TUL Předmět databázové systémy
Přednáška č. 1 Úvod, Historie zpracování dat, Základní pojmy
A5M33IZS – Informační a znalostní systémy Dotazovací jazyk SQL - I.
SQL: DDL v ORACLE CREATE TABLE jméno_tabulky (atribut datový_typ [DEFAULT][attribut_constraint] [, atribut datový_typ [DEFAULT] [attribut_constraint]],...
Aplikační a programové vybavení
Jazyk SQL Ing. Zdena DOBEŠOVÁ. SQL Structured Query Language 1974 SEQUEL (Structured English Query Language) neprocedurální relační dotazovací jazyk norma.
LOV, Listbox, Poplist a Combobox v Oracle Forms LOV – seznam hodnot, které se zobrazí po stisku klávesy Enter v textovém poli. LOV – seznam hodnot, které.
 Informací se data a vztahy mezi nimi stávají vhodnou interpretací pro uživatele, která odhaluje uspořádání, vztahy, tendence a trendy  Existuje celá.
Přednáška č. 5 Proces návrhu databáze
Fakulta elektrotechniky a informatiky
Informační systémy Realizace uložených procedur a spouští, jejich praktické využití.
Informační systémy Nástroje pro sběr dat, návrh a realizace databáze.
Další dotazy SQL Structured Query Language. Některé SQL příkazy mohou mít v sobě obsaženy další kompletní příkazy SELECT. Využijeme je tam, kde potřebujeme.
Informatika pro ekonomy II přednáška 11
Databázové systémy 1 Cvičení č. 2 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Fakulta elektrotechniky a informatiky
PROGRAMOVACÍ JAZYKY (c) Tralvex Yeap. All Rights Reserved.
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
Databáze Jiří Kalousek.
MySQL - Vytvoření nové tabulky  create table jméno_tabulky (jméno_položky typ_položky,... ) Přehled nejběžnějších datových typů Přehled nejběžnějších.
Databázové systémy Štěpán Šípal.
Databáze Úvod.
Databázové systémy II Přednáška č. 8 – Pohledy (Views)
Školení správců II. Petr Pinkas RNDr. Vít Ochozka.
Databázové systémy teorie a návrh relačních databázových systémů část II.
Relační databáze.
Vypracoval: Ondřej Dvorský Třída: VIII.A
Databázové systémy Architektury DBS.
KIV/ZIS cvičení 6 Tomáš Potužák. Pokračování SQL Klauzule GROUP BY a dotazy nad více tabulkami Stáhnout soubor studenti_dotazy_sql.mdb.
Celní služby 2000 Radek Sedláček TranSoft a.s Radek Sedláček TranSoft a.s
Databázové systémy I Cvičení č. 6 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
SQL PVA Jan Hora. SQL „graficky“ Grafický vs. pravý SQL SELECT ORDED BY WHERE.
Číslo šablony: III/2 VY_32_INOVACE_P4_3.8 Tematická oblast: Aplikační software pro práci s informacemi II. Databáze – základy SQL Typ: DUM - kombinovaný.
Architektury a techniky DS Cvičení č. 9 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy II Přednáška č. 9. Transakce je logická jednotka práce sestávající z jednoho nebo více SQL příkazů, které jsou atomické z hlediska.
Copyright (C) 2000 Vema, a. s.1 V3 klient Michal Máčel Provozní integrace G2, HR/Win a internetu.
uložené procedury (stored procedures) triggery, sekvence, pohledy, funkce, parametrické dotazy (prepared statements) komplexní agregace a SQL dotazy jiné.
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
DATABÁZOVÉ SYSTÉMY. 2 DATABÁZOVÝ SYSTÉM SYSTÉM ŘÍZENÍ BÁZE DAT (SŘBD) PROGRAM KTERÝ ORGANIZUJE A UDRŽUJE NASHROMÁŽDĚNÉ INFORMACE DATABÁZOVÁ APLIKACE PROGRAM.
Autentizace a účty v AD. Autentizace stanice v AD.
Databázové modelování
Informatika II PAA DOTAZOVACÍ JAZYKY
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Aplikační a programové vybavení
Databázové systémy Informatika pro ekonomy, př. 18.
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B13 Autor Ing. Jiří Kalousek Období vytvoření březen.
Databázové systémy 2 Cvičení č. 5 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Základní obeznámení s jazykem SQL Databázové systémy.
Selektivní šifrování dat v databázích
Použití dotazu jako zdroj dat pro pohled Vypracovala: Procházková Petra.
SQL Další dotazy a pohledy Databázové systémy. Některé SQL příkazy mohou mít v sobě obsaženy další kompletní příkazy SELECT. Využijeme je tam, kde potřebujeme.
Zabezpečení DB. Při práci s webovou aplikací je potřeba zvážit tři hlavní aspekty zabezpečení: 1. Způsob uložení dat na serveru – je nutné chránit především.
1 Syntaxe a sémantika aktivních databází Databázové triggery Aktivní pravidla 10. listopadu 2004 Zuzana Reitermanová & Vojtěch Hlaveš.
Databázové systémy Úvod, Základní pojmy. Úvod S rozvojem lidského poznání roste prudce množství informací. Jsou kladeny vysoké požadavky na ukládání,
Úvod do databází zkrácená verze.
BEZPEČNOSTNÍ TECHNOLOGIE I Operační program Vzdělávání pro konkurenceschopnost Projekt: Vzdělávání pro bezpečnostní systém státu (reg. č.: CZ.1.01/2.2.00/ )
Databáze MS ACCESS 2010.
NÁZEV ŠKOLY:SOŠ Net Office, spol. s r.o. Orlová Lutyně
Roman Danel Institut ekonomiky a systémů řízení 2016
Dotazovací jazyk SQL - III
Budování Integrovaného informačního systému Národního památkového ústavu Petr Volfík, NPÚ ÚP
Databázové systémy a SQL
Zabezpečení www stránek
Šablona 32 VY_32_INOVACE_038.ICT.34
Databázové systémy a SQL
Přednáška 9 Triggery.
Transkript prezentace:

Databázové systémy Zabezpečení DBS

Cíle, které je třeba vzít v úvahu při návrhu databázové aplikace z pohledu bezpečnosti: Důvěrnost - informace by neměly být přístupné neautorizovaným uživatelům. Integrita - modifikovat data může jen autorizovaný uživatel. Dostupnost - 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 Zajištění bezpečnosti dat

Bezpečnostní mechanismy poskytované SŘBD Pohledy Řízení přístupu Existují dva hlavní způsoby řízení přístupu: - nepovinné - 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é - 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í

Při práci s webovou aplikací je potřeba zvážit tři hlavní aspekty zabezpečení: 1. Způsob uložení dat na serveru – je nutné chránit především samotnou databázi MySQL, jednak nastavením vhodných uživatelských oprávnění, jednak ochranou adresáře, ve kterém jsou ukládána používaná data. 2. Ochrana citlivých informací – vytvoření neveřejné části aplikace, ke které má přístup pouze správce. 3. Zabezpečení dat během přenosu – je nutné použít zabezpečených transakcí. K tomu se používá na serveru protokol SSL (Secure Sockets Layer), ke kterému se připájí platný certifikát serveru. Hlavní aspekty

Webová aplikace by měla s ohledem na zabezpečení : používat specifického uživatele databáze MySQL server MySQL by neměla používat jako uživatel ROOT, ani jako anonymní uživatel. Proto je potřebné vytvořit na serveru MySQL nového uživatele jemuž nastavíme heslo a přístup pouze na vybranou databázi. Tento uživatel by měl mít oprávnění pouze ke spouštění přidávacích, aktualizačních a výběrových dotazů. Tím se minimalizuje riziko zneužití přístupových informací. Databáze MySQL - uživatelská oprávnění

Každý uživatel v systému MySQL může mít specifická oprávnění ve vybraných databázích, podle toho, z jakého počítače se k databázi připojuje. Uživatel ROOT má nejvyšší pravomoci – superuživatel – a používá se při tvorbě dalších uživatelů. Je možné i novému uživateli udělit oprávnění superuživatel. Informace o uživatelích a jejich oprávněních jsou uloženy v databáze mysql v tabulkách db, host, user, func, tables_priv a columns_priv. Tvorba uživatelů a jejich práv

Uživatele a jeho oprávnění je možné definovat různými způsoby. Prostřednictvím monitoru mysql se k tomu používá příkaz GRANT: GRANT oprávnění ON databáze.* TO uživatel IDENTIFIED BY ’heslo’; Hvězdička znamená, že chcete oprávnění nastavit pro všechny tabulky v databázi. Tvorba uživatelů a jejich práv

Seznam privilegií OprávněníUmožňuje SELECTProhlížení a výběr dat z tabulek INSERTPřidávání dat do tabulek UPDATEÚpravu existujících dat v tabulkách DELETEOdstraňování existujících dat z tabulek INDEXVytvářet a odstraňovat indexy ALTERUpravovat strukturu tabulek CREATEVytvářet nové tabulky nebo databáze DROPOdstraňovat tabulky nebo databáze RELOADOpětovně načíst tabulku oprávnění SHUTDOWNZastavit server MySQL PROCESSProhlížet zastavit existující procesy MySQL FILEImportovat data z textových souborů GRANTVytvářet nové uživatele REVOKEOdebrat uživatelům oprávnění

Chceme-li definovat pouze specifický počítač, či doménu, bude příkaz GRANT vypadat následovně: GRANT oprávnění ON databáze.* TO IDENTIFIED BY ’heslo’; Vytvoření nového uživatele

Uživatel „ferda“ se bude moci přihlásit z počítače, na kterém je spuštěn server MySQL s heslem „mravenec“ a bude mít udělená uživatelská práva. Uživatelské jméno může obsahovat maximálně 16 znaků. Rozlišuje se velkost písmen. Heslo nemá omezení na délku a rovněž se v něm rozlišuje velkost písmen. Heslo je zašifrováno v databázi – není možné ho přímo převést do podoby prostého textu.

K tomu slouží příkaz: FLUSH PRIVILEGES; Nové uživatele je samozřejmé možné vytvářet i jinak, např. s použitím phpMyAdmin. Je zde ale potřeba rozumět vztahům mezi tabulkami databáze mysql. Změny v nastavení uživatelů

Tabulka DB

Tabulka USER

Pro zadávání a správu uživatelů, kteří budou mít přístup k vytvářené databázi se používá speciální tabulka, ve které budou uložené všechny důležité informace – hlavně uživatelské jméno a heslo, se kterými se bude zaregistrovaný uživatel hlásit k databázi. Taková tabulka se nejčastěji nazývá uzivatele. Může mít např. takovouto strukturu: Uživatelská databáze

Z bezpečnostních důvodů se pro zašifrování hesla používá funkce PASSWORD( ). Tato funkce vytvoří zašifrovaný řetězec, který má vždy délku 16 znaků. Je to jednocestná šifrovací technika, tzn. dešifrovat takto šifrovaná data je prakticky nemožné.Není teda vhodná pro šifrování dat, která budeme chtít ještě prohlížet. Zabezpečení hesla

Pokud bychom chtěli ukládat data v zašifrované podobě, kterou lze dešifrovat, je možné použít funkce: ENCODE( ) pro zakódování a DECODE( ) pro dekódování. INSERT INTO uzivatele (uziv_jmeno, heslo) VALUES ('ferda', ENCODE(mravenec, 'x1x2x3')); SELECT DECODE(heslo, 'x1x2x3') FROM uzivatele WHERE uziv_jmeno = 'ferda'; Takovýto způsob šifrování se využívá pro zabezpečení informací typu rodné číslo, číslo kreditní karty…, tj. informací, které chceme chránit, ale bude je třeba uživatelům zpřístupnit. Zabezpečení dat

Implementace integritních omezení Podpora SŘBD – omezení domén – všeobecná omezení – omezení bázové tabulky 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í) Databázové trigerry

Databázové triggery Databázový trigger (spoušť) je vlastně procedura, kterou automaticky volá SŘBD při definované události. Touto událostí může být buď vložení, rušení nebo aktualizace záznamu v tabulce. Složky příkazu vytvoření databázového triggeru - jméno triggeru, - č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ý

Databázové triggery SHOW TRIGGERS; Vytvoření triggru CREATE TRIGGER jméno triggeru BEFORE | AFTER DELETE | INSERT | ]> ON jméno tabulky REFERENCING |NEW AS >] [FOR EACH ROW] [WHEN ] BEGIN END; Zobrazení triggru DROP TRIGGER [IF EXISTS] [schema_name.]trigger_name; Odstranění triggru

Databázové triggery CREATE TRIGGER kontrola BEFORE UPDATE ON account -> FOR EACH ROW -> BEGIN -> IF NEW.amount < 0 THEN -> SET NEW.amount = 0; -> ELSEIF NEW.amount > 100 THEN -> SET NEW.amount = 100; -> END IF; -> END;

Databázové triggery create table zapis ( student varchar(10) not null, predmet varchar(10) not null, kredity int(2) not null); create table omezeni ( typ varchar(30) not null, min_hodnota int(5) not null, max_hodnota int(5) not null); insert into omezeni values ('KRED_SEMESTR', 10, 20); insert into omezeni values ('KRED_STUDIUM', 300, 320); Triggery jsou často používány při realizaci tzv. „pravidel", tj. integritních omezení specifických pro danou oblast použití. Např. ve studijní agendě si mohou studenti zapsat maximálně 20 kreditů za semestr. Protože tento požadavek se může měnit, je zavedena tabulka OMEZENI, ve které jsou uloženy všechny potřebné hraniční hodnoty.

Databázové triggery create trigger kontrola_kreditu before insert on zapis for each row begin select sum(kredity)as sum from zapis where id_st = NEW.id_st; select max_hodnota As maximum from omezeni where typ = 'SEMESTR'; if ) > maximum) then errmsg := 'Prekroceno maximum kreditu!'; end if; end;