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

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

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

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

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

Administrace Oracle. Práva a role, audit

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

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

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

Střední odborná škola a Střední odborné učiliště, Hořovice

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

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

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

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

Instalace. Produkt je odzkoušen pro MS SQL server 2008 a Windows XP a Windows 7. Pro jiné verze SQL server a Windows nebyl testován.

téma: Akční dotazy v MS Access

DUM 11 téma: Databázové jazyky a servery

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

Klíčová slova: dynamické internetové stránky, HTML, CSS, PHP, SQL, MySQL,

WORKWATCH ON-LINE EVIDENCE PRÁCE A ZAKÁZEK

ISPOP 2019 MANUÁL PRO PRÁCI V REGISTRU ODBORNĚ ZPŮSOBILÝCH OSOB

2. blok Zabezpečení a ochrana dat

Střední odborná škola a Střední odborné učiliště, Hořovice

téma: Parametrické a křížové dotazy v MS Access

téma: Sestavy v MS Access

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

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

zobrazuje názvy polí, vložené hodnoty jednotlivých záznamů, lze v něm zadávat data (přidávat záznamy) v návrhovém zobrazení:

Virtuální privátní databáze

DUM 9 téma: Hostingové služby

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

Questionnaire příručka uživatele

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

DUM 4 téma: Základní registry

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

Databáze SQL SELECT. David Hoksza

DUM 14 téma: Interakce s uživatelem

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

PROVOZNÍ DENÍK NÁVOD

Střední odborná škola a Střední odborné učiliště, Hořovice

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

ISPOP 2019 MANUÁL PRO PRÁCI V REGISTRU ODBORNĚ ZPŮSOBILÝCH OSOB

Použití databází na Webu

Modul. Univerzální tabulkový export

Návod k nastavení účtu v emclient (IceWarp Desktop) pro práci s IceWarp Mail serverem.

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

APS Web Panel. Rozšiřující webový modul pro APS Administrator. Webové rozhraní pro vybrané funkce programového balíku APS Administrator

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

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

Databáze v Excelu EU peníze středním školám Didaktický učební materiál

Správa uživatelů a rolí farmářů

REPORTING. Příručka pro Partnery a zákazníky -1-

Operátory ROLLUP a CUBE

DUM 3 téma: Podmínky a Globální proměnné

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

Athena Uživatelská dokumentace v

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

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

DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP. Maturitní projekt. Třída:

SQL injection jak ji možná neznáte Roman Kümmel

Zálohování a obnova databáze. Kryštof Měkuta

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

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

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA

Na vybraném serveru vytvoříme MySQL databázi. Soubory scratch.jpa, kickstart.php a en-gb.kickstart.ini nahrajeme na vybraný server.

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

Počítačové sítě Systém pro přenos souborů protokol FTP

Roční periodická zpráva projektu

STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE

Připojení k eduroam.cz: Nastavení síťových komponent Meraki a konfigurace ISE

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

IMPLEMENTACE A PROVOZ DISCOVERY SYSTÉMU UKAŽ NA UNIVERZITĚ KARLOVĚ. Mgr. Martin Ledínský, Univerzita Karlova , Praha, NTK

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

Uživatelská příručka

Př ihlaš ova ní do IS etešty př eš JIP

Microsoft Windows Server System

Průvodce aplikací GTS Webový portál pro správce

Import a export dat EU peníze středním školám Didaktický učební materiál

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

Aplikace Elektronická podání Transakční část portálu veřejné správy

Informační systém pro e-learning manuál

Návod na používání webmailu

Příručka uživatele HELPDESK GEOVAP

Excel a externí data KAPITOLA 2

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

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

1.13 ACCESS popis programu

Databáze v MS ACCESS

DUM 13 téma: Instant messaging

Nastavení a využívání ových služeb na serveru společnosti. Via Aurea, s.r.o.

Edu-learning pro školy

Instrukce pro vzdálené připojení do učebny 39d

PRAVIDLA UŽÍVÁNÍ POČÍTAČOVÉ SÍTĚ

HelpDesk. Uživatelská příručka verze 1.7. duben Dodavatel: MÚZO Praha s.r.o. Politických vězňů Praha 1

Na vod k nastavenı ovy ch schra nek Administrace

Návod k instalaci S O L U T I O N S

Databázové systémy a SQL

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

Přechod na Firebird 3. Popis migrační utility

4IT218 Databáze. 4IT218 Databáze

Transkript:

DUM 15 téma: Příkazy pro řízení přístupu ze sady: 3 tematický okruh sady: III. Databáze ze šablony: 7 Kancelářský software určeno pro: 4. ročník vzdělávací obor: 18-20-M/01 Informační technologie vzdělávací oblast: odborné vzdělávání metodický list/anotace: viz VY_32_INOVACE_07315ml.pdf Tomáš Vokoun VY_32_INOVACE_07315dum - strana 1 22.3.2013

Důvěrnost a bezpečnost dat Dala, uložená v relačním databázovém systému, jsou velmi zranitelná díky tomu, že k nim má centralizovaným způsobem přístup jakýkoliv uživatel sítě či přímo internetu. Úkolem systému řízení báze dat je tak zajistit ochranu dat před neoprávněným přístupem ať čtením, či změnou a mazáním. Pro zajištění tohoto úkolu je databázový server schopný rozlišovat uživatele mezi sebou, provádět procesy identifikace, autentizace a autorizace. Při každém příchozím požadavku prochází svou vnitřní evidenci oprávnění a zjišťuje, zda je možné požadavek realizovat. Teprve poté jen předá samotnému databázovému engine ke zpracování (případně odmítnutí jako chybně formátovaný či nerealizovatelný). Nejčastějším způsobem identifikace uživatelů v databázovém systému jsou uživatelská jména a jako autentizační mechanismus užíváme textová hesla byť řada databázových serverů podporuje i klíče či certifikáty. Evidence uživatelů je většinou oddělena od samotného datového skladu a tak není nutné pro každé oprávnění přidávat dalšího uživatele. V některých databázových systémech jsou dokonce uživatelé uloženi, či převzati, fixně a správce databáze může pouze již existujícím uživatelům pouze přidávat či odebírat práva. Pro řízení uživatelských oprávnění se v databázích užívá jazyk DCL Data Control Language. V Jazyce SQL reprezentovaný příkazy GRANT a REVOKE Přidělení práv Systémy založené na SQL využívají pro přidělení práv kombinace údajů uživateldatabáze-tabulka-činnost a tento konglomerát při každém dotazu testují proti tabulce oprávnění, kterou si systém sám vede. Práva tak lze řídit na úrovni celé databáze, nebo jejích jednotlivých tabulek; dále i na úrovni jednotlivých prováděných příkazů. Tomáš Vokoun VY_32_INOVACE_07315dum - strana 2 22.3.2013

Typickou syntaxí příkazu GRANT je: GRANT práva ON tabulka_či_databáze TO uživatel@host Kdy jak sekce práva může zahrnovat i několik dovolených příkazů. Praktická ukázka: GRANT SELECT,INSERT ON databaze1.test TO frantisek @ recepce ; V této podobě je uživateli frantisek dovoleno provádět příkazy SELECT a INSERT v rámci tabulky test uložené v databázi databaze1. Ovšem pouze v případě, že je přihlášen z počítače recepce. Místo označení počítače lze použít třeba jeho IP adresu, typicky u webových aplikací pak 127.0.0.1 (localhost) kdy prává mají pouze uživatelé na místním počítači třeba PHP server a podobně. Pokud chceme práva přidělit bez ohledu na stanici, použijeme zástupný znak % : GRANT SELECT,INSERT ON databaze1.test TO frantisek @ % ; poznámka: Některé implementace SQL vyžadují uvedení uživatelského jména v apostrofech, některé ne. Jejich uvedením ale většinou nic nezkazíme. Další úpravou může být přidělení práv pro všechny (třeba zatím ještě neexistující) tabulky v celé databázi. Zde používáme zástupný znak * (na rozdíl od % všude jinde v SQL): GRANT SELECT,INSERT ON databaze1.* TO frantisek @ recepce ; Samozřejmě lze uvést i velkorysé přidělení na všechny tabulky všech databází: GRANT SELECT,INSERT ON *.* TO frantisek @ recepce ; což je ale bezpečnostně velmi nevhodné a v ostrém provozu se nikdy nepoužívá. Kromě explicitního výčtu práv (reprezentovaných přímo příkazy jazyka SQL) je možné uživateli přidělit všechna dostupná práva pomocí termínu ALL PRIVILEGES : GRANT ALL PRIVILEGES ON databaze1.test TO frantisek @ recepce ; i tento postup je v praxi spíše výjimkou a bezpečnostním rizikem. Tomáš Vokoun VY_32_INOVACE_07315dum - strana 3 22.3.2013

Obecně lze uživateli přidělit tato práva: select, insert, update, delete, index, alter, create, drop, grant, references, reload, shutdown, process a file (tučně označená jsou v praxi používána, ostatní zcela výjimečně) Kromě přidělení práva pro celou tabulku, je v některých variantách SQL (třeba MySQL) možné rozlišovat práva až na úroveň jednotlivých sloupců. Například umožňuj uživateli editovat pouze některé části datových vět: GRANT SELECT, UPDATE(datum_prijezdu) ON databaze1.test TO frantisek @ recepce ; V tomto případě může Fantišek v recepci prohlížet veškeré záznamy v tabulce test, ale pouze ve sloupci dat_prijezdu může provádět změny. Někdy může být nutné přidělit práva i uživateli neautentifikovanému (pokud databázi zpřístupňujeme předem neznámému okruhu uživatelů. V takovém případě místo uživatelského jména použijeme prázdné apostrofy : GRANT SELECT,INSERT ON databaze1.test TO @ bar ; Tento přístup je ale mnohem lépe nahradit zřízením univerzálního účtu (třeba čtenář ), který pro takové účely využijeme. Případný zájemce o přístup k databázi (typicky externí firma, která potřebuje do naší databáze přístup) si o něj požádá. Zatím nezmíněnou částí jsou hesla. Doposud uvedené příklady sice rozlišovaly uživatelská jména, avšak při jejich znalosti už dotazující se nemusel nijak svou identitu prokazovat. Způsob ochrany databáze pouze tím, že nezveřejníme jména uživatelů, je velmi chabý. Proto zásadně uživatelům přidělíme hesla, pomocí rozšíření IDENTIFIED BY : GRANT SELECT,INSERT ON databaze1.test TO frantisek @ recepce IDENTIFIED BY tajne heslo ; poznámka: Místo zápisu hesla v otevřené podobě je možné použít direktivu PASSWORD" a uložit přímo hash hesla: Tomáš Vokoun VY_32_INOVACE_07315dum - strana 4 22.3.2013

TO frantisek @ recepce IDENTIFIED BY PASSWORD F598A54D2165.. ; Pozor! Prvním použitím direktivy IDENTIFIED BY zároveň uživateli nastavíte heslo, které bude platné pro všechna ostatní práva jemu dříve či později nastavená. Následné přidělení dalších práv bez IDENTIFIED BY přidělí práva, ovšem již s požadavkem na použití hesla. V některým implementacích SQL je možné nastavit různá hesla v závislosti na místu, odkud se uživatel přihlašuje. kombinace uživatelského jména a hosta odkud posílá požadavek je pak spolu vlastně teprve uživatelským jménem, ke kterému se váže účet. Toho se dá využít třeba při odlišení přístupu z firemní sítě (či lokálního stroje), kdy stačí heslo jednoduché či žádné a naopak při přístupu zvenčí je požadováno použití hesla. Delegování práv Má.li uživatel již přidělena nějaká práva, může za určitých okolností tato práva dále předávat jiným uživatelům. Záleží na správci databázového serveru, zda takový postup umožní a do jaké míry. Rozhodujícím faktorem je uvedení (či neuvedení) direktivy WITH GRANT OPTION, která umožňuje získaná práva dále předávat. Bez této direktivy uživatel přidělená práva nemá možnost nikomu dalšímu předat. Logicky také může dále předávat pouze taková práva, která sám má případně jen jejich část. V našem případě tedy: GRANT SELECT,INSERT ON databaze1.test TO frantisek @ recepce WITH GRANT OPTION; způsobí, že František může dále předávat svá práva SELECT a INSERT jakémukoliv existujícímu uživateli. Pokud bychom chtěli, aby mohl sále delegovat pouze SELECT a ne INSERT, přidělíme práva nadvakrát poprvé pouze SELECT s direktivou GRANT OPTION a poté INSERT bez ní. Podstatné také je, že většina běžných uživatelů databáze není oprávněna v databázovém systému vytvářet další uživatele. Proto lze práva delegovat pouze na již existující a většinou jim samozřejmě ani nelze změnit či nastavit heslo. V jiných konfiguracích databázového systému je možné použití GRANT pro neexistujícího uživatele brát zároveň jako pokyn pro jeho vytvoření pokud na to grantující má sám právo. V ostatních případech musí správce systému nejprve uživatele vytvořit pomocí CREATE USER a případně mu i přidělit heslo atd. Tomáš Vokoun VY_32_INOVACE_07315dum - strana 5 22.3.2013

Odebrání práv Kdekoliv lze práva přidávat, lze je i odebírat. V jazyce SQL k tomu slouží příkaz REVOKE. Odebrat práva může samozřejmě ten, kdo je smí i přidělovat (disponuje GRANT OPTION)-a to pouze v rozsahu těch práv, která sám k objektu má. Syntaxe je obdobná jako u GRANT: REVOKE INSERT ON databaze1.test FROM frantisek @ recepce ; odebere Františkovi právo INSERT, právo SELECT mu tak zůstává. Případně lze použít i REVOKE ALL PRIVILEGES k odebrání všech práv, ovšem pozor-i v takovém případě uživatel v systému zůstává, byť například nemá žádná práva k žádné tabulce. Úkoly pro samostatnou práci - sestavte příkaz, který umožní uživateli frantisek vkládat záznamy do tabulky hoste, ovšem pouze pokud je přihlášen na počítači kancelář - zajistěte, aby uživatel pavel mohl číst veškerá data na databázovém serveru, pokud je přihlášen na počítači reditel tak bez hesla, v ostatních případech musí použít heslo (heslo zvolte dle uvážení) - dovolte uživateli jirka číst a mazat z tabulky snidane a to tak aby on sám mohl dovolit čtení i jiným uživatelům Tomáš Vokoun VY_32_INOVACE_07315dum - strana 6 22.3.2013

Zdroje: Archiv autora Tomáš Vokoun VY_32_INOVACE_07315dum - strana 7 22.3.2013