Bezpečnostné požiadavky

späť na zoznam


Základné bezpečnostné požiadavky databáz sú podobné požiadavkám na zabezpečenie počítačových systémov. Základnými problémami sú kontrola prístupu, overenie pravosti používateľov a spoľahlivosť.

Zoznam požiadaviek teda vyzerá nasledovne:

Integrita databázy

späť na zoznam


Ak má databáza slúžiť ako centrálny repozitár údajov, jej používatelia musia správnosti daných údajov dôverovať. Na splnenie tejto podmienky je potrebné zabezpečiť obmedzenie právomoci pri aktualizácií údajov len oprávneným jednotlivcom. Tiež sa predpokladá zabezpečenie pred poškodením údajov, či už nepovolenou operáciou vykonanou určitým programom, alebo vonkajším vplyvom ako je oheň alebo zlyhanie napájania.
Zabezpečenie integrity databázy ako takej má za úlohu DBMS, teda Database Management System - systém na správu databázy, ďalej operačný systém a nakoniec tiež systémový manažér. Z perspektívy operačného systému a systémového manažéra sú databázy a DBMS súbory resp. programy. Jedným zo spôsobov zabezpečenia databázy ako takej je teda pravidelná záloha všetkých súborov v systéme. Tieto pravidelné zálohy môžu predstavovať adekvátnu formu kontroly proti katastrofickým zlyhaniam.
Niekedy je dôležitá schopnosť rekonštruovať databázu v bode zlyhania. Príkladom môže byť zlyhanie napájania práve v čase, keď klient banky vykonáva transakciu. V tomto prípade je nutné obnoviť systém do stabilného stavu bez toho, aby používatelia museli svoje transakcie vykonať znovu. Na riešenie tejto situácie si DBMS udržuje záznam transakcií, v ktorom sú postupne zaznamenávané všetky spracované transakcie. V prípade zlyhania systému môže byť databáza obnovená zo zálohy a zvyšné transakcie zopakované práve podľa tohto záznamu.

Integrita zložiek

späť na zoznam


Integrita zložiek v databáze znamená ich správnosť a bezchybnosť. Aj keď sú za správnosť zadávaných údajov zodpovedný oprávnený používatelia, títo môžu spraviť chyby pri ich získavaní, počítaní alebo zadávaní. Preto DBMS obsahuje procedúry na odchytenie týchto chýb pri zadávaní a opravu chýb po ich vložení.
Opravný zásah môže byť uskutočnený tromi spôsobmi. Prvým je kontrola polí, pri ktorom DBMS kontroluje správnosť formátu zadaných hodnôt. Niektoré polia v databáze môžu vyžadovať zadanie čísel, veľkých písmen a podobne. DBMS tiež kontroluje, či je zadaná hodnota v rozsahu povolených hodnôt. Tieto kontroly zabraňujú jednoduchým chybám priamo pri vkladaní údajov.
Druhým spôsobom je kontrola prístupu. Za prideľovanie práv na aktualizáciu hodnôt v databáze je zodpovedný správca databázy. Rieši tiež výskyt duplicitných záznamov alebo pridávanie konfliktných modifikácií. Integrita zložiek databázy teda závisí na tom, či dá správca prístupové práva a práva na zmenu zložiek správnym ľuďom.
Tretím spôsobom na zabezpečenie integrity databázy je záznam zmien v databáze. V tomto zázname sú uložené všetky zmeny, ktoré boli v databáze vykonané, obsahuje rovnako originálne hodnoty ako aj zmenené hodnoty. S pomocou tohto záznamu môže správca vrátiť neplatné alebo chybné zmeny.

Auditovateľnosť

späť na zoznam


Niektoré aplikácie môžu vyžadovať auditné záznamy o všetkých prístupoch do databázy. Takéto záznamy môžu pomôcť k zachovaniu integrity databázy, alebo aspoň k zisteniu skutočností, ktoré ovplyvnili hodnoty v databáze a kedy.
Druhou výhodou je, že používatelia majú prístup k chráneným údajom čiastkovo, teda žiadny samostatný prístup neodhalí dané tajné údaje, ale rad nadväzujúcich prístupov tieto tajné údaje zistiť dokáže. V tomto prípade môže audit odhaliť kroky, ktoré pomohli k získaniu týchto tajných údajov.
Prekážkou pri audite je granularita. Na udržanie integrity je dôležité, aby auditné záznamy obsahovali prístupy na úrovni záznamov, polí ale aj prvkov. Táto úroveň detailov je však príliš vysoká pre väčšinu databázových aplikácií.
Ďalší problém vzniká v prípade, že záznam je síce používateľovi sprístupnený, ale nie je zobrazený ako v prípade vykonania príkazu SELECT. Prístup k záznamom alebo prvkom bez prenosu k používateľovi sa nazýva pass-through problém. Taktiež je možné určiť hodnoty niektorých prvkov bez priameho prístupu. Auditný záznam o všetkých priamych prístupoch teda môže preceňovať aj podceňovať to, čo používateľ vie.

Kontrola prístupu

späť na zoznam


Databázy sú často oddelené logicky podľa používateľských prístupových práv. Všetci používatelia môžu mať napríklad prístup k všeobecným údajom, ale len používatelia z personálneho oddelenia môžu získať údaje o platoch, používatelia z marketingu údaje o predaji a podobne. Databázy sú veľmi užitočné, pretože sa v nich sústreďujú a udržiavajú údaje. Obmedzený prístup je rovnako záväzok ako aj prínos tejto centralizácie.
Správca databázy určuje, komu by mal byť umožnený prístup k jednotlivým údajom na úrovní zobrazení, relácií, polí, záznamov alebo dokonca prvkov. DBMS má na starosti dodržiavanie týchto pravidiel. Spôsobov prístupu môže byť mnoho. Používateľ alebo program môže mať právo čítať, meniť, mazať alebo pridávať hodnoty, pridať alebo odstrániť celé pole alebo záznam, či dokonca reorganizovať celú databázu.
Na prvý pohľad sa môže zdať, že riadenie prístupu v databáze je rovnaké ako riadenie prístupu v operačnom systéme. Tento problém je však v databázach zložitejší. V operačnom systéme objekty ako súbory navzájom nesúvisia, zatiaľ čo v databáze sú záznamy, polia a prvky prepojené. Kým používateľ nedokáže určiť obsah súboru získaním obsahu iných súborov, v databáze je možné určiť hodnoty získaním iných hodnôt. Problém určovania hodnoty z iných hodnôt sa nazýva inferencia.
Je dôležité uvedomiť si, že prístup k údajom pomocou inferencie je možný bez priameho prístupu k zabezpečenému objektu. Obmedzenie inferencie môže znamenať zakázanie určitej postupnosti prístupov. Avšak takéto obmedzenia môžu obmedziť používateľov, ktorí sa nepokúšajú o neoprávnený prístup. Navyše môže kontrola požiadaviek na prítomnosť možnej inferencie degradovať výkonnosť DBMS.

Overenie používateľa

späť na zoznam


DBMS môže vyžadovať dôsledné overenie používateľa. Napríklad môže trvať na tom, aby používateľ zadal špecifické heslo pre dané obdobie dňa. Tento spôsob overenia dopĺňa overovanie vykonávané operačným systémom. Fakt, že DBMS pracuje v rámci nejakého operačného systému znamená, že neexistuje dôveryhodná cesta medzi DBMS a operačným systémom. DBMS teda musí overovať všetky údaje získané z operačného systému, vrátane overenia používateľa. Preto je DBMS nútené robiť vlastné overovanie.

Dostupnosť

späť na zoznam


DBMS musí riešiť problém paralelného prístupu k údajom, kedy sú používatelia nútení navzájom na seba čakať.

Ochranné prvky v databázach

späť na zoznam


Dvojstupňová aktualizácia
Vážnym problémom pre správcov databáz je výpadok systému uprostred úpravy dát. Ak bola upravovaná položka rozsiahla, môže sa stať že polovica poľa by zobrazovala novú hodnotu, kým ta druhá by zobrazovala hodnotu pôvodnú. Aj keby boli takéto chyby ľahko zistiteľné, väčší problém by vznikol pri úprave viacerých polí, kde by sa chyba neprejavovala v žiadnom samostatnom poli. Riešením tohto problému je dvojstupňová aktualizácia, ktorá sa používa vo väčšine moderných DBMS.
Počas prvej fázy zhromažďuje DBMS prostriedky potrebné na vykonanie aktualizácie. Zbierajú sa údaje, vytvárajú sa "umelé" záznamy, otvárajú sa súbory, vykonávajú sa všetky akcie potrebné na aktualizáciu, ale nevykonávajú sa žiadne zmeny v databáze. Táto fáza je opakovateľná, pokiaľ systém počas nej zlyhá, nie sú spôsobené žiadne škody a všetky kroky sa môžu zopakovať znovu.
Posledným krokom prvej fázy je nastavenie tzv. commit príznaku v databáze. Po nastavení tohto príznaku už niet cesty späť, DBMS začne vykonávať zmeny v databáze.
V druhej fáze sa vykonávajú trvalé zmeny. Všetky operácie v tejto fáze môžu byť vrátené a zopakované vďaka záznamom o zmenách, a vďaka tieňovým záznamom, ktoré boli vypočítané počas prvej fázy. Pokiaľ nastane zlyhanie systému v tejto fáze, údaje v databáze môžu byť nekompletné, ale systém ich dokáže opraviť pomocou záznamu.

Kódy na detekciu a opravu chýb
Jedným zo spôsobov detekcie inkonzistencie údajov v databáze je použitie kódov na detekciu a opravu chýb. Pomocou týchto kódov sa dá vypočítať kontrolná suma pre jednotlivé prvky, polia, záznamy alebo celú databázu. Kontrolné sumy sa počítajú vždy po vykonaní úprav a kontrolujú sa pri čítaní údajov. Niektoré typy kódov dokážu určiť aj miesto, kde chyba nastala, niektoré dokonca dokážu jednoduché chyby sami opraviť.

Tieňové polia
V databáze sa môžu nachádzať duplikáty prvkov alebo celých záznamov. V prípade poškodenia hlavných údajov je na obnovu použitý jej duplikát. Je zrejmé, že takýto spôsob zabezpečenia redundancie má veľké nároky na pamäťový priestor.