22
BAZE PODATAKA Predavanje 24/03/2010 10. Integritet i sigurnost http://www.riteh.hr/zav_katd_sluz/zr/nastava/bp

10 - Integritet i Sigurnost

Embed Size (px)

DESCRIPTION

Sigurnost BP

Citation preview

Page 1: 10 - Integritet i Sigurnost

BAZE PODATAKA

Predavanje 24/03/2010

10. Integritet i sigurnost

http://www.riteh.hr/zav_katd_sluz/zr/nastava/bp

Page 2: 10 - Integritet i Sigurnost

Prošla predavanja

● Uvod u baze podataka● DBMS● Relacijski model● Relacijska algebra● Modeliranje podataka● Model entiteti-veze (ER

model)● Preslikavanje ER-modela u

relacije● Operacija pridruživanja

(Join)● Normalizacija

● SQL● SQL jezik● Definiranje podataka

– CREATE TABLE– ALTER TABLE– UPDATE TABLE

● Rukovanje podacima– INSERT, UPDATE, DELETE– SELECT– SELECT iz više tabela– Pridruživanja (JOIN)

● CROSS, NATURAL, INNER, OUTER (LEFT, RIGHT, FULL), SELF

– Promjena imena (ALIAS)– Podupiti (subqueries)– IN, EXISTS– ALL, ANY– ORDER BY– Agregatne funkcije– GROUP BY– HAVING– UNION, INTERSECT,

EXCEPT

Page 3: 10 - Integritet i Sigurnost

Sadržaj predavanja

● Sigurnost

● Integritet

Page 4: 10 - Integritet i Sigurnost

Sigurnost

Page 5: 10 - Integritet i Sigurnost

Sigurnost

● kontrolira se pristup informacijama da bi se zaštitili od nedopuštenih i zlonamjernih radnji● neke informacije mogu biti dostupne svima● neke informacije moraju biti dostupne samo

određenim grupama korisnika

Page 6: 10 - Integritet i Sigurnost

Sigurnost

● sigurnost se može promatrati sa raznih stanovišta:● pravni aspekti, sigurnosne politike i protokoli unutar

firme ili organizacije, itd

● željenu razinu sigurnosti postižemo na razne načine:● fizička sigurnost● sigurnost OS-a● sigurnost mreže● sigurnost DBMS-a● itd.

Page 7: 10 - Integritet i Sigurnost

Sigurnost DBMS-a

● Sustavi za upravljanje bazama podataka pružaju određenu sigurnost● identifikacija korisnika● ovlaštenja i dopuštenja● pogledi (views) kao mehanizam zaštite

Page 8: 10 - Integritet i Sigurnost

Identifikacija korisnika

● svaki korisnik ima račun, korisničko ime i lozinku● koriste se da identificiraju korisnika i kontroliraju

njegov pristup informacijama● DBMS kontrolira lozinku i provjerava korisnikova

dopuštenja prilikom:● dohvaćanja podataka● mijenjanja podataka● mijenjanja strukture baze

● DBMS se može oslanjati na korisničko ime i lozinku operacijskog sustava

Page 9: 10 - Integritet i Sigurnost

Ovlaštenja i dopuštenja

● SQL koristi ovlaštenja (privileges) za kontrolu pristupa tabelama i ostalim objektima baze

● ovlaštenja određuju se što korisnik može raditi sa podacima● SELECT – dopuštenje za čitanje● INSERT – dopuštenje za upis● UPDATE – dopuštenje za mijenjanje● DELETE – dopuštenje za brisanje

● Vlasnik baze ima sva ovlaštenja nad svim objektima baze i može regulirati ovlaštenja ostalih korisnika

Page 10: 10 - Integritet i Sigurnost

Ovlaštenja i SQL

● <privileges> je lista (odvojena zarezom) elemenata:

SELECT <columns>INSERT DELETEUPDATE <columns>

● ili samo ključne riječi ALL

● <users> je lista korisničkih imena ili PUBLIC● <object> je ime tabele ili pogleda● WITH GRANT OPTION znači da korisnik može dalje

proslijediti ovlaštenje drugim korisnicima

GRANT <privileges> ON <object>TO <users> [WITH GRANT OPTION]

Page 11: 10 - Integritet i Sigurnost

Primjer

● korisnik 'Manager' ima sva dopuštenja sa tabelom Zaposlenik i može dopuštati ostalim korisnicima da čine isto

GRANT ALL ON ZaposlenikTO Manager WITH GRANT OPTION

● korisnik 'Financije' može vidjeti cijelu tabelu Zaposlenik i može mijenjati plaću. Ne može mijenjati ostale stupce i ne može proslijediti svoja dopuštenja drugim korisnicima

GRANT SELECT, UPDATE(Plaća) ON Zaposlenik TO Financije

Page 12: 10 - Integritet i Sigurnost

Ukidanje ovlaštenja

● tko je zadao ovlaštenje nekom korisniku može i ukinuti to ovlaštenje sa:

● ako je dobio isto ovlaštenje i od nekog drugog, onda mu to ovlaštenje ostaje

● sva ovlaštenja zavisna od ukinutog se također ukidaju

REVOKE <privileges> ON <object>FROM <users>

Page 13: 10 - Integritet i Sigurnost

Primjer

● Administrator zada sva ovlaštenja korisniku Manager

● Administrator zada ovlaštenje SELECT korisniku Financije

● Manager sa ključnom riječi ALL zada sva ovlaštenja korisniku Osoblje

● Financije zada ovlaštenje SELECT korisniku Osoblje

Što se događa ako:

Manager ukine ovlaštenje ALL korisniku Osoblje?

Nakon toga Administrator ukine SELECT korisniku Financije?

Page 14: 10 - Integritet i Sigurnost

Pogledi (views)

● Ovlaštenja nad tabelama omogućavaju ograničavanje pristupa stupcima● nema načina da se ograniči pristup po redovima!

● Pogledi riješavaju problem:● pogled je rezultat SELECT upita nad nekom tabelom● taj rezultat se tretira kao zasebna tabela

– pogled je kao virtualna tabela– iz pogleda se mogu izvlačiti podaci SELECT kao i iz

tabela– mijenjanje podataka (UPDATE) u pogledu je pod

određenim uvjetima ponekad dozvoljeno, naime pogledi se oslanjaju na tabelu iz koje su podaci izvučeni

● izmjene podataka u tabeli mijenjaju i pogled i obrnuto

Page 15: 10 - Integritet i Sigurnost

Pogled

● Mijenjanje podataka u pogledu nije uvijek dozvoljeno

● Uvjeti pod kojima se može mijenjati su:● svaki element SELECT upita mora biti stupac● ne koristi se DISTINCT● pogled je definiran iz jedne jedine tabele

– pridruživanja i spajanja redova nisu dopuštena● nema podupita● nema GROUP BY i HAVING

● Informirati se za pojedini DBMS

Page 16: 10 - Integritet i Sigurnost

Pogledi

● Pogled se stvara sa

● <name> je ime pogleda● <select upit> je upit koji vraća redove i stupce

pogleda● Primjer:

● želi se omogućiti da korisnik Financije vidi imena i brojeve telefona svih korisnika koji rade u njegovom odjelu

CREATE VIEW <name> AS <select upit>

Page 17: 10 - Integritet i Sigurnost

Primjer

CREATE VIEW OdjelFinancije ASSELECT Ime, Telefon FROM Zaposlenik WHERE Odjel = 'Financije'

GRANT SELECT ON OdjelFinancije TO PUBLIC

Page 18: 10 - Integritet i Sigurnost

Pogledi i ovlaštenja

● Pogledi i ovlaštenja se koriste zajedno za detaljno reguliranje kontrole pristupa podacima● prvo se napravi pogled koji sadrži točno one

informacije kojima želimo dati pristup● zatim se zadaju ovlaštenja za pristup tom pogledu, a

ne tabeli iz koje je pogled izvučen!

Page 19: 10 - Integritet i Sigurnost

Integritet

Page 20: 10 - Integritet i Sigurnost

Sigurnost i integritet

● Sigurnost baze podataka se brine da samo ovlašteni korisnici pristupaju podacima

● Integritet baze podataka se brine da ovlašteni korisnici koriste podatke na ispravan način

Page 21: 10 - Integritet i Sigurnost

Integritet

● Integritet:● korektnost (dopuštene zdravorazumske vrijednosti

podataka)● konzistencija (međusobna suglasnost podataka)

Koje vrste integriteta smo do sada spominjali?

Page 22: 10 - Integritet i Sigurnost

Integritet

● Pravila za čuvanje integriteta:● integritet domene

– ugrađuju se odgovarajuće kontrole u aplikacijski program

– zadan je tip za svaki stupac● neki DBMS-i omogućavaju zadavanje dodatne kontrole

● integritet unutar relacije– entitetski integritet– PRIMARY KEY, UNIQUE

● referencijski integritet– odnose se na veze među relacijama (strani ključ)– svaka vrijednost stranog ključa u prvoj relaciji mora biti

prisutna i u drugoj relaciji