More actions
Bez shrnutí editace |
Bez shrnutí editace |
||
Riadok 131: | Riadok 131: | ||
|- | |- | ||
|'''[[Bezpečnosť a perzistencia údajov#Reverzibilita údajov|Reverzibilita údajov]]''' | |'''[[Bezpečnosť a perzistencia údajov#Reverzibilita údajov|Reverzibilita údajov]]''' | ||
|Schopnosť vrátiť údaje alebo databázu do predchádzajúceho stavu pomocou ROLLBACK alebo zálohovania. | |Schopnosť vrátiť údaje alebo databázu do predchádzajúceho stavu pomocou <code>ROLLBACK</code> alebo zálohovania. | ||
|} | |} | ||
{{Téma|Oblast=Kategória:Dátová veda|Poradie=70}} | {{Téma|Oblast=Kategória:Dátová veda|Poradie=70}} | ||
[[Kategória:Dátová veda]] | [[Kategória:Dátová veda]] |
Aktuálna revízia z 09:06, 13. január 2025
Autorizácia a práva používateľov (WITH GRANT OPTION
), šifrovanie, perzistencia a reverzibilita údajov.
Autorizácia a práva používateľov
Autorizácia je proces, ktorým sa určuje, aké operácie môže používateľ alebo aplikácia vykonávať na databázových objektoch. Práva a povolenia definujú, čo môže konkrétny používateľ robiť.
Práva používateľov
- Práva na úrovni objektov:
SELECT
: Čítanie údajov;INSERT
: Pridávanie nových údajov;UPDATE
: Úprava existujúcich údajov;DELETE
: Odstraňovanie údajov;EXECUTE
: Spúšťanie uložených procedúr a funkcií;REFERENCES
: Vytváranie cudzích kľúčov odkazujúcich na danú tabuľku;
- Práva na úrovni schémy/databázy:
CREATE
: Vytváranie nových tabuliek, pohľadov a ďalších objektov;ALTER
: Úprava existujúcich tabuliek alebo schém;DROP
: Odstraňovanie objektov;
- Systémové práva:
CREATE USER
: Vytváranie nových používateľov;GRANT
: Poskytovanie práv iným používateľom;REVOKE
: Odoberanie práv;
Dodatočné privilégiá pre konkrétny SQL server sa nachádzajú v ich dokumentácii. Napríklad, všetky práva pre MySQL sú dostupné v MySQL dokumentácii online.
Klauzula WITH GRANT OPTION
Umožňuje používateľovi nielen vykonávať operácie s určitými právami, ale aj odovzdávať tieto práva ďalším používateľom.
Používateľ, ktorý dostane povolenie s klauzulou WITH GRANT OPTION
, môže ďalej delegovať tieto práva na iných používateľov.
Napríklad:
GRANT SELECT ON tabulka TO pouzivatel WITH GRANT OPTION;
-- `pouzivatel` môže čítať údaje z `tabulka` a udeľovať práva `SELECT` iným používateľom
REVOKE
s kaskádou
Ak je používateľovi odobraté právo, ktoré bol oprávnený udeliť iným, všetky ním poskytnuté práva budú tiež (kaskádovo) odobraté:
REVOKE SELECT ON tabulka FROM pouzivatel CASCADE;
-- ak `pouzivatel` udelil práva iným používateľom, tieto práva budú tiež odobraté
Šifrovanie údajov
Šifrovanie je technika na ochranu údajov, ktorá konvertuje čitateľné údaje (plaintext) na nečitateľnú formu (ciphertext), ktorá je prístupná iba oprávneným používateľom s dešifrovacím kľúčom.
Typy šifrovania
- Symetrické šifrovanie:
- Používa jeden kľúč na šifrovanie aj dešifrovanie (napríklad: AES - Advanced Encryption Standard);
- Asymetrické šifrovanie:
- Používa verejný kľúč (public key) na šifrovanie a súkromný kľúč (private key) na dešifrovanie (napríklad: RSA - iniciály autorov: Rivest–Shamir–Adleman);
Použitie šifrovania v databázach
- Šifrovanie na úrovni polí:
- Šifruje konkrétne citlivé stĺpce (napríklad: čísla kreditných kariet):
SELECT ENCRYPT('1234-5678-9012-3456', 'tajny_kluc');
- Šifruje konkrétne citlivé stĺpce (napríklad: čísla kreditných kariet):
- Šifrovanie na úrovni disku:
- Celý disk alebo súbory databázy sú šifrované (napríklad: TDE - Transparent Data Encryption);
- Prenos údajov:
- Šifrované spojenie medzi klientom a serverom (napríklad: TLS/SSL);
Prístupové práva
Riadenie prístupu k údajom na základe úrovní povolení:
- Používateľ má prístup iba k údajom, ktoré potrebuje na vykonanie svojej práce (princip „najmenších oprávnení“).
Napríklad:
- Prístup k údajom v tabuľke je zabezpečený pomocou klauzúl
GRANT
aREVOKE
; - Používanie pohľadov (
VIEW
) na obmedzenie viditeľnosti údajov:CREATE VIEW mesta_zamestnancov AS SELECT meno, mesto FROM zamestnanci; -- osobné údaje, ako napríklad číslo občianskeho preukazu, nebudú zobrazené -- to zabezpečí, že používateľ ktorý má práva iba k tomuto `VIEW` vidí iba -- to, čo mu povolíme
Perzistencia údajov
Perzistencia znamená, že dáta sú trvalo uložené a pretrvávajú aj po ukončení aplikácie alebo reštarte systému.
Zabezpečenie perzistencie:
- Ukladanie dát do perzistentných úložísk (napríklad: pevné disky, SSD, cloudové úložiská);
- Transakcie a ACID vlastnosti (trvalosť - durability - zabezpečuje, že po potvrdení transakcie sú zmeny permanentne uložené);
- Logovanie (transakčné logy zabezpečujú obnovu dát v prípade výpadku);
Napríklad:
BEGIN TRANSACTION;
UPDATE ucet SET zostatok = zostatok - 100 WHERE ucet_id = 1;
UPDATE ucet SET zostatok = zostatok + 100 WHERE ucet_id = 2;
COMMIT; -- dáta sú trvalo zapísané
Reverzibilita údajov
Schopnosť vrátiť databázu do predchádzajúceho stavu.
Spôsoby zabezpečenia reverzibility:
- Transakcie s
ROLLBACK
– umožňujú zrušiť zmeny vykonané v rámci transakcie, ak sa niečo pokazí; - Zálohovanie a obnova – použitie záloh na obnovenie údajov do predchádzajúceho stavu;
- Historické verzie dát – ukladanie starých verzií údajov, aby bolo možné ich obnoviť, napríklad cez časové pečiatky:
CREATE TABLE historia_objednavky ( objednavka_id INT, datum TIMESTAMP, -- časová pečiatka stav VARCHAR(50) );
Zhrnutie
Pojem | Popis |
---|---|
Autorizácia a práva | Riadenie prístupu používateľov pomocou povolení a klauzuly WITH GRANT OPTION .
|
Šifrovanie | Ochrana údajov pred neoprávneným prístupom pomocou symetrického a asymetrického šifrovania. |
Prístupové práva | Definujú, kto a akým spôsobom môže manipulovať s údajmi v databáze. |
Perzistencia údajov | Trvalé uchovanie údajov aj po ukončení aplikácie alebo výpadku systému. |
Reverzibilita údajov | Schopnosť vrátiť údaje alebo databázu do predchádzajúceho stavu pomocou ROLLBACK alebo zálohovania.
|