10 - integritet i sigurnost
DESCRIPTION
Sigurnost BPTRANSCRIPT
BAZE PODATAKA
Predavanje 24/03/2010
10. Integritet i sigurnost
http://www.riteh.hr/zav_katd_sluz/zr/nastava/bp
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
Sadržaj predavanja
● Sigurnost
● Integritet
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
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.
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
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
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
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]
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
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>
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?
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
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
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>
Primjer
CREATE VIEW OdjelFinancije ASSELECT Ime, Telefon FROM Zaposlenik WHERE Odjel = 'Financije'
GRANT SELECT ON OdjelFinancije TO PUBLIC
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!
Integritet
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
Integritet
● Integritet:● korektnost (dopuštene zdravorazumske vrijednosti
podataka)● konzistencija (međusobna suglasnost podataka)
Koje vrste integriteta smo do sada spominjali?
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