25
Integritet i sigurnost podataka kolegij: Baze podataka I. Batisti ´ c email: [email protected] Fizi ˇ cki odsjek, PMF Integritet i sigurnost podataka – p. 1

I. Batistic´ - grdelin.phy.hrgrdelin.phy.hr/~ivo/Nastava/Baze_podataka/predavanja-2004/17_pred.pdf · Baza podataka mora biti zašticena´ od nedopuštenih ili zlonamjernih radnji

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Integritet i sigurnost podataka

kolegij: Baze podataka

I. Batistic

email: [email protected]

Fizicki odsjek, PMF

Integritet i sigurnost podataka – p. 1

Integritet i sigurnost podataka

1. Integritet podataka (prošlo predavanje)

2. Istovremeni pristup podacima (prošlo predavanje)

3. Oporavak baze podataka (prošlo predavanje)

4. Zaštita od neovlaštenog pristupa podacima (današnje

predavanje)

Integritet i sigurnost podataka – p. 2

Zaštita od neovlaštenog pristupa

Baza podataka mora biti zašticena od nedopuštenih ilizlonamjernih radnji. Osnovni vid zaštite je ogranicenjefizickog pristupa do samog racunala i njegovih terminala.

Osim fizicke zaštite, postoji i softwareski vid zaštite koji seugraduje u DBMS. Njime se ogranicava rad s bazompodataka i ljudima koji imaju mogucnost fizickogpristupanja racunalu ili terminalima.

Integritet i sigurnost podataka – p. 3

Nacini zaštite

Postoji nekoliko vidova zaštite koji se mogu koristiti i ukombinaciji:

Identifikacija korisnika

Pogledi kao mehanizam zaštite

Ovlaštenja

Integritet i sigurnost podataka – p. 4

Zaštita: Identifikacija korisnika

Svaki korisnik baze podataka ima svoje:

korisnicko ime (username)

Tajnu, samo njemu poznatu lozinku (šifra/password)

Da bi smio raditi s bazom podataka, korisnik mora sepredstaviti DBMSu navodenjem imena, te mora dokazatisvoj identitet navodenjem lozinke.

Integritet i sigurnost podataka – p. 5

Zaštita: Identifikacija korisnika

Ukoliko korisnik ne navede korisnicko ime i lozinku kojiodgovaraju popisu, DBMS odbija dati dopuštenje za rad.

DBMS se može osloniti na imena i lozinke koje koristioperacijski sustav, ili može koristiti svoj vlastiti popis.

Integritet i sigurnost podataka – p. 6

Zaštita racunala na Internetu/LANu

Vecina današnjih DBMSova ima mogucnost rada naInternetu. Bazama podataka može se pristupat s udaljenihracunala lociranih u drugim gradovima, zemljama ilisusjednoj zgradi.

Ova prednost ujedno je i mana jer otvara još jedna dodatnavrata mogucem neovlaštenom ili zlonamjernom pristupanjupodacima.

Integritet i sigurnost podataka – p. 7

Pristupanje podacima prekoInterneta

Internet je baziran na tz. IP protokolu.

Racunala medusobno komuniciraju preko kratkih poruka ilipaketa.

Paketi imaju tocno odredenu strukturu definiranu IPprotokolom.

IP protokol se može zamisliti kao jezik kojim racunalamedusobno razgovaraju.

Napomena: Postoje i druge vrste protokola: DECnet, . . .Integritet i sigurnost podataka – p. 8

Internet: IP protokol

Svaki IP paket dodjeljuje se jednoj vrsti Internet usluge /komunikacije i identificira ga se preko broja ili tz. porta.

Svaka usluga na Internetu ima svoj broj porta:

ftp - 20/21ssh - 22telnet - 23mail - 25www (web) - 80kriptirani www - 443

Ti brojevi su unaprijed definirani IP protokolom.Integritet i sigurnost podataka – p. 9

Internet: IP protokol

Baze podataka takoder imaju svoje portove zakomunikaciju:

mysql - 3306

postgresql - 5432

itd.

Integritet i sigurnost podataka – p. 10

Internet: Zaštita

Kako zaštiti bazu podataka na Internetu ?

Sasvim iskljuciti mrežne mogucnosti DBMSaDopustiti da samo lokalni programi pristupaju DBMSu(localhost)Dopustiti da samo racunala unutar lokalne mrežepristupaju DBMSuDopustiti nekima, ali uz identifikaciju (korisnik/lozinka)Koristiti šifriranu komunikaciju (ssl/ssh, dvostrukikljucevi,. . . )

Integritet i sigurnost podataka – p. 11

Zaštita: Pogledi

Kroz poglede (views) korisniku može mu se dati pravopristupanja samo jednom dijelu podataka.(Uz pretpostavku da mu je ostatak baze podataka zabranjen.)

Napomene:Na pocetku ovog kolegija bilo je spomenuto da se mogudefinirati pogledi (pod-sheme) (view) kao sredstvopostizavanja logicke neovisnosti podataka.

Integritet i sigurnost podataka – p. 12

Zaštita: Pogledi

U relacijskom modelu se globalna shema i pogledi(pod-shema) zadaju kao skup relacija. Pri tome se relacijakoja cini pogled izvodi iz relacije koje cine globalnu shemu,primjenom relacijski operacija.

Integritet i sigurnost podataka – p. 13

Pogledi: Primjeri

Promatrajmo bazu podataka zaposlenih u nekompoduzecu, odjele u kojima rade. Podaci se mogu prikazatipomocu dvaju relacija u globalnoj shemi:

ZAPOSLENI (ZAP_BROJ, IME, ADRESA, PLACA, ODJEL_BROJ);

ODJEL (ODJEL_BROJ, IME_ODJELA, DIREKTOR);

Integritet i sigurnost podataka – p. 14

Pogledi: Primjer 1.

Pogled koji je namijenjen korisnicima koji smiju pristupatisvim podacima osim podataka o placi:

POGLED1 := ZAPOSLENI [ ZAP_BROJ, IME, ADRESA, ODJEL_BROJ];

Korisnik vidi samo vertikalni fragment cijele relacije.

Integritet i sigurnost podataka – p. 15

Pogledi: Primjer 2.

Ovaj je pogled je namijenjen korisnicima koji smijupristupati svim podacima ali samo o zaposlenim samo unekom odjelu.

POGLED2 := ZAPOSLENI where (ODJEL_BROJ = D3);

Korisnik vidi samo horizontalni fragment cijele relacije.

Integritet i sigurnost podataka – p. 16

Pogledi: Primjer

Treci pogled služi za korisnike–direktore. On smijepristupati svim podacima o osobama zaposlenim unjegovom odjelu:

POGLED3 := ZAPOSLENI join (ODJEL where (DIREKTOR = USERNAME);

Opcenito:Korisnici ne vide relaciju koja zapravo postoji u bazi podataka vec

relaciju koja se dobije odredenom kombinacijom iz postojecih relacija.

Integritet i sigurnost podataka – p. 17

Pogledi: Primjer iz postgreSQLa

Baza podataka fakulteta. Definiramo pogled koji sadržipodatke o studentima trece godine studija Profesor fizike iinformatike.CREATE TABLE student (

prezime VARCHAR(50),

ime VARCHAR(50),

indeks VARCHAR(10),

godina INT,

smjer VARCHAR(10),

PRIMARY KEY (indeks)

);

CREATE VIEW pfi_3

AS SELECT ime,prezime,indeks

FROM student WHERE smjer=’pfi’ AND godina=3;

ORDER BY prezime,ime;

Integritet i sigurnost podataka – p. 18

Zaštita: Ovlaštenja

Ovlaštenjima se odreduje što korisnik može raditi spodacima koji su mu na raspolaganju.

Ovlaštenja mogu biti:

READ/SELECT - dopuštenje za citanje

UPDATE - dopuštenje za mijenjanje postojecihpodataka

INSERT - dopuštenje za upis novih podataka

DELETE - dopuštenje za brisanje postojecih podataka

Integritet i sigurnost podataka – p. 19

Zaštita: Ovlaštenja

Dopuštenja se mogu zadati na novou cijelog pogleda, ilidetaljnije, na novou relacije.

DBMS mora pamtiti popis ovlaštenja za svakog korisnika isvaku relaciju iz pripadnog pogleda !

Integritet i sigurnost podataka – p. 20

Ovlaštenja: Primjeri

Primjer SQL naredba za bazu podataka na fakultetu:

GRANT SELECT ON student TO PUBLIC;

Direktor iz prošlog primjera može imati pravo naREAD i UPDATE za relaciju POGLED3, ali ne imogucnost za INSERT i DELETE.Znaci, direktor može mijenjati place svojimslužbenicima, ali ih ne može zaposlene ne možeotpustiti niti nove osobe zaposliti.

Integritet i sigurnost podataka – p. 21

Zaštita: Ovlaštenja

Ukoliko korisnik pokuša obaviti radnju za koju nije ovlašten,DBMS je nece izvršiti, vec ce ispisati poruku o povrediovlaštenja.

Integritet i sigurnost podataka – p. 22

Ovlaštenja: Napomena

Ažuriranje relacija zadanih unutar pogleda možepredstavljati logicki problem, pogotovo ako je relacija izpogleda zadana kao spoj dvaju relacija iz globalne sheme.

Svi DBMSi postavljaju ogranicenja na ažuriranje relacijakroz poglede. To može biti dozvola za ažuriranje samoonih relacija koje se dobivene selekcijom ili projekcijomsamo jedne relacije iz globalne sheme.

Integritet i sigurnost podataka – p. 23

Ovlaštenja: Administrator baze

Obicno se administrator baze brine oko zaštite odneovlaštenog pristupa. On upisuje popis korisnika, zadajepoglede, regulira ovlaštenja. Da bi to mogao ciniti, on sammora imati posebna ovlaštenja, veca od svih drugihkorisnika.

Integritet i sigurnost podataka – p. 24

Zaštita: Primjeri za SQL (postgresql)

(administrator baze je korisnik postgres)

Dodavanje novog korisnika:templete1# CREATE USER pero WITH SYSID 3333 PASSWORD ’jw8s0F4’

NOCREATEDB NOCREATEUSER;

Davanje ovlasti novom korisniku:templete1# GRANT SELECT, UPDATE ON moja_relacija TO pero;

Podaci o korisnicima i ovlastima:templete1# SELECT * FROM pg_user;

Integritet i sigurnost podataka – p. 25