Osnove zaštite
Zaštita neovlašćenim korisnicima zabranjuje rad sa podacima, ovlaščeni korisnici mogu da rade takođe samo ono što im se dopusti.
SQL Server 2008 sadrži robustan i fleksibilan model zaštite koij je tesno je povezan sa zaštitom u operativnom sistemu Windows. To znači da SQL Server koristi korisničke naloge koji su napravljeni u operativnom sistemu. U SQL Server-u se dodeljuju prava koje korisnički nalozi i uloge imaju za različite objekte SQL Server-a.
Znači SQL Server omogućava upotrebu opcija operativnog sistema (trajanje lozinki i zapisivanje pokušaja prijavljivanja i aktivnosti nad bazom podataka.
Postupak provere korisnika se naziva proveravanje identiteta (Authentication) a postupak utvrđivanja šta korisnik može da radi naziva se provera dozvola (Permissions Validation).
Načini proveravanja identiteta
Proveravanje identiteta obuhvata proveravanje da li je korisnik upravo onaj korisnik kojim se predstavlja da jeste, nakon toga korisnik može da obavlja akcije koje su mu dodeljene ulogama čiji je korisnik član.
Postoje dva načina za proveravanje identiteta:
Prilikom mešovitog proveravanja identiteta (SQL Server Windows), SQL Server podržava SQL Server i Windows korisničke naloge. Kada se instalira SQL Server, može se konfigurisati proveravanje identiteta koje će se koristiti u SQL Server-u. Da biste izmenili način proveravanja identiteta koji želite da koristite, neophodno je uraditi sledeće:
Slika 10.18.1. - Prikaz promene identiteta
Prednosti proveravanja identiteta tipa Windows Only:
Prednosti proveravanja tipa SQL Server i Windows u odnosu na proveravanje tipa Windows Only su:
Pravljenje Windows korisničkih naloga:
1. Otvorite čvor Security servera (slika 10.18.2).
2. Desnim tasterom miša kliknite Logins i odaberite New Login. Prikazaće se okvir Login Properties.
Slika 10.18.2. - Prikaz rezultata čvora Security
3. Unesite korisničko ime ili kliknite na Search kako biste pronašli korisnički nalog.
4. Ukoliko kliknete na Search, prikazaće se okvir za dijalog User or Group (slika 10.18.3), unesite ime korisnika ili grupe.
5. Kliknite na Check Name kako biste proverili da li korisnik ili grupa postoje.
6. Kliknite na OK kako biste zatvorili okvir za dijalog Select User or Group.
7. Odaberite proveravanje identiteta tipa Windows Only.
8. Za korisnika zadajte bazu podataka.
Slika 10.18.3. - Okvir za dijalog Login Properties
9. Kliknite na čvor Server Roles kako biste korisniku pridružili serverske uloge (slika 10.18.4).
10. Kliknite na karticu User Mapping kako biste zadali baze podataka koje korisnik može da upotrebljava.
11. Kliknite na OK kako biste zatvorili okvir za dijalog i dodali korisnika.
Slika 10.18.4 - Prikaz čvora Server Roles
Kada pravite SQL Server korisnički nalog, vi pravite korisnički nalog koji nigde više ne postoji osim u SQL Server-u. Korisnički nalog je nezavistan od operativnog sistema i njegovih korisničkih naloga. Da bi se napravio korisnički nalog, neophodni su sledeći koraci:
1. Otvorite čvor Security servera.
2. Desnim tasterom miša kliknite na Logins i odaberite New Login. Prikazaće se okvir za dijalog Login Properties.
3. Unesite korisničko ime.
4. Odaberite proveravanje identiteta tipa SQL Server.
5. Unesite lozinku (slika 10.18.5). U lozinci se razlikuju mala i velika slova. Lozinka može da sadrži od 1 do 128 znakova, uključujući slova, sinbole i cifre.
6. Potvrdite lozinku.
7. Za korisnika zadajte bazu podataka.
8. Kliknite čvor Server Roles kako biste korisnički nalog pridružili serverskim ulogama.
9. Kliknite čvor User Mapping kako biste zadali baze podataka koje korisnik može da upotrebljava.
10. Kliknite OK kako biste zatvorili okvir za dijalog.
Slika 10.18.5. - Prikaz unosa korisničkog naloga
Dodeljivanje prava na bazu podataka korisničkim nalozima
Dozvole za rad sa bazama podataka se dodeljuju prilikom pravljenja korisničkog naloga. Da bi se dodelila dozvola postojećem korisničkom nalogu, neophodno je uraditi sledeće:
1. Otvorite čvor Security servera.
2. U levom panou kliknite Login. U desnom panou će se prikazati korisnički nalozi. Desnim tasterom miša kliknite na korisnički nalog sa kojim ćete raditi i odaberite Properties. Prikazaće se okvir za dijalog Login Properties.
3. Kliknite na čvor User Mapping. Prikazaće se okvir za dijalog koji vidite na slici 10.18.6.
4. Potvrdite polje Map pored svake baze podataka koju korisnik može da upotrebljava.
5. Pomoću miša odaberite uloge baze podataka (sistemske uloge i uloge koje su definisane) kojima korisnik treba da pripada.
6. Kliknite OK kako biste zapisali izmene.
Slika 10.18.6. - Prikaz dodavanja baze podataka
Korisnički nalog SA je specijalan korisnički nalog u okruženju SQL Server. Ukoliko SQL Server instalirate u mešovitom režimu (proveravanje identiteta tipa Windows i SQL Server), korisnički nalog Sa ima neograničena prava. Ukoliko identitet proveravate u mešovitom režimu, onda ne postoji način da izmenite ili uklonite korisnički nalog Sa. Zbog toga za korisnički nalog Sa morate da zadate lozinku. Ukoliko to ne uradite, uzaludni su svi pokišaji zaštite.
Uloge su ekvivalent Windows grupama. Vi pravite uloge i potom korisnicima pridružujete te uloge. Korisnici, kojima je dodeljena uloga, nasleđuju dozvole koje su dodeljene ulozi. Postupak pravljenja uloga i dodeljivanja dozvola tim ulogama umnogome olakšava upravljanje zaštitom. Umesto da pojedinačnim korisnicima budu dodeljne dozvole, dozvole se mogu da dodeliti grupama korisnika.
Tipovi uloga
U SQL Server-u postoje četiri tipa uloga:
Fiksne serverske uloge
Fiksne serverske uloge su ugrađene u SQL Server i nikako se ne mogu definisati. Svojim članovima omogućavaju da obave administrativne poslove na nivou sistema. Fiksne serverske uloge su:
Ukoliko je korisnik član sysadmin uloge, ne možete mu zabraniti obavljanje ni jedne akcije na serveru.
Serverske uloge značajno olakšavaju upravljanje zaštitom. Sistemske uloge to mogu da ostvare jer vam omogućavaju da podelite administrativne poslove koje korisnici mogu da obavljaju i da im dodelite dozvole da obavljaju samo specifične poslove.
Koraci za dodeljivanje sistemskih uloga korisniku:
Slika 10.18.7. - Okvir za dijalog Server Role Properties
Slika 10.18.8. - Okvir za dijalog Select Logins
Slika 10.18.9. - Okvir za dijalog Browse for Objects
Fiksne uloge baze podataka
Pomoću fiksnih uloga baze podataka korisnicima dodeljujete dozvole na nivou baze podataka. One se prikazuju u posebnom čvoru baze podataka na koju se odnose. Ove uloge olakšavaju postupak dodeljivanja dozvola za bazu podataka.
Fiksne uloge baze podataka su:
Da biste korisniku dodelili fiksnu ulogu baze podataka, neophodno je odraditi:
1. Otvoriti čvor Data baze podataka i pronađite podčvor Roles (slika 10.18.10).
Slika 10.18.10. - Prikaz podčvora Roles
2. Desnim tasterom miša kliknite na ulogu koju želite da dodelite korisnicima i odaberite Properties. Prikazaće se okvir za dijalog Database Role Properties (slika 10.18.11).
Slika 10.18.11. - Prikaz dodele uloge korisnicima
3. Kliknite Add kako biste korisniku dodelili ulogu. Prikazaće se okvir za dijalog Select Database User or Role (slika 10.18.12).
Slika 10.18.12. Ekran za selectovanje User-a
4. Kliknite na Browse. Prikazaće se okvir za dijalog Browse for Objects (Slika 10.18.13).
Slika 10.18.13. Ekran za odabir korisnika kojima se dodeljuje uloga
5. Potvrdite polja pored korisničkih naloga kojima želite da dodelite ulogu pa potom kliknite na OK. Kliknite OK kako biste zatvorili okvir za dijalog Select Database User or Role. SQL Server će odabranim korisnicima dodeliti ulogu.
U SQL Server-u mogu da postoje dva tipa uloga koje definišete, to su:
Da biste napravili ulogu, treba da uradite sledeće:
1. Otvorite čvor Database baze podataka i pronađite podčvor Roles.
2. Desnim tasterom miša kliknite podčvor roles i odaberite New Database Role. Prikazaće se okvir za dijalog Database Role u koji treba da unesete ime nove uloge (slika 10.18.14).
Slika 10.18.14. - Prikaz okvira za dijalog Database Role za unos parametara
3. Unesite ime uloge u tekstualno polje Role.
4. Zadajte šeme za koje je uloga vlasnik.
5. Kliknite Add kako biste korisniku dodelili ulogu. Prikazaće se okvir za dijalog Select Database User or Role.
6. Odaberite korisničke naloge kojima želite da dodelite ulogu i potom kliknite na OK. SQL će odabranim korisnicima dodeliti ulogu, a ulogu će dodeliti bazi podataka.
Vlasništvo
U SQL Server-u vlasnik objekta je onaj ko napravi objekat. Vlasnik ima sva prava za koriščenje objekta. Ime objekta je zapravo owner.objectname.
Korisnik se ne može ukloniti iz baze podataka sve dok je on vlasnik objekata baze podataka. Ne može se direktno upravljati vlasnikom objekta.
U svakoj bazi podataka postoji specijalan korisnički nalog (dbo). SQL Server korisnički nalog dbo pridružuje fiksnoj serverskoj ulozi sysadmin. Znači ukoliko ste član grupe sysadmin i napravite objekat, SQL Server će obeležiti objekat kao da mu je vlasnik dbo. Objektu se obraćate sa dbo.objectname.
Pomoću sistemske uskladištene procedure sp_changeobjectwner možete da promenite vlasnika objekta. Samo članovi fiksne serverske uloge sysadmin, fiksne uloge baze podataka db_ownere ili član obe fiksne uloge baze podataka db_changeobjectowner.
Kada se promeni vlasnik objekta, SQL uklanja sve dozvole za taj objekat. Da bi dbo ponovo bio vlasnik, morate kvalifikovati ime vlasnika i ime objekta:
EXEC sp_changeobjectowner ‘Brendan.tblCustomers ‘, ‘dbo‘
Tipovi dozvola:
Pravljenje korisnika baze podataka
Da bi korisnik baze podataka koristio bazu, u bazi se mora napraviti korisnički nalog, i to na sledeći način:
1. Otvorite čvor Database baze podataka i pronađite podčvor User (slika 10.18.15).
Slika 10.18.15 - Prikaz odabiranja podčvora Users
2. Desnim tasterom miša kliknite podčvor Users i odaberite New User. Prikazaće se okvir za dijalog Database User u koji treba da unesete korisničko ime novog korisnika (slika 10.18.16).
Slika 10.18.16. - Prikaz unosa naziva novog Users-a
3. Unesite korisničko ime ili kliknite na komandno dugme Build, gde će se prikazati okvir za dijalog Select Login (slika 10.18.17). U okvir unesite korisnička imena ili kliknite dijalog Browse for Objects (slika 10.18.18).
Slika 10.18.17. Prikaz okvira za selektovanje Users-a
Slika 10.18.18. Prikaz okvira za biranje korisnika
4. Pomoću miša odaberite korisnike koje želite da dodate.
5. Kliknite na OK da biste okvir zatvorili za dijalog.
6. Kliknite na OK da biste zatvorili okvir za dijalog Select Login.
7. Kliknite na OK da biste zatvorili okvir za dijalog Database User i naparvili korisnika.
Iskazi za rad sa dozvolama
Mogu se zadati tri iskaza za rad sa dozvolama za objekte koji postoje u bazi podataka:
Upravljanje dozvolama za objekata
Za detaljnije informacije o upravljanju dozvolama pogldajte PDF fajl.
Za tabelu možete da dodelite dozvole ALTER, CONTROL, DELETE, INSERT, SELECT, TAKE OWNERSHIP, UPDATE i VIEW DEFINITION.
Korake za dodelu dozvola za tabelu (i detaljnije informacije o drugim dozvolama) možete da vidite u PDF fajlu.
U SQL Server-u veoma lako možete da dodelite dozvole na nivou kolone za tabele i poglede. Dozvole na nivou kolone omogućavaju da na nivou kolone odredite da li korisnik ima dozvole SELECT i UPDATE. Dozvole INSERT i DELETE se ne mogu dodeliti na nivou kolone jer se odnose na ceo red. Koraci su:
1. Desnim tasterom miša kliknite na tabelu za koju želite da dodelite dozvole i odaberite Properties. Prikazaće se okvir za dijalog Table Properties.
2. Kliknite na stranicu Permissions. Prikazaće se stranica Permissions okvira za dijalog.
3. Kliknite na Add kako biste dodali korisničke naloge i uloge kojima želite da dodelite dozvole na novou kolone. Prikazaće se okvir za dijalog Select Uses or Roles.
4. Kliknite na Browse kako biste odabrali korisničke naloge i uloge kojima želite da dodelite dozvole na nivou kolone.
5. Odaberite korisničke naloge i uloge.
6. Kliknite na OK kako biste zatvorili okvir za dijalog.
7. Kliknite na OK kako biste zatvorili okvir za dijalog Selec Users or Roles.
8. Dodelite dozvole SELECT i UPDATE za tabelu ili pogled korisničkom nalogu ili ulozi koju ste odabrali. Komandno dugme Column Permissions postaje aktivno (slika 10.18.32).
Slika 10.18.32. - Okvir za dijalog Object Properties
9. Kliknite na Column Permissions. Prikazaće se okvir za dijalog Column Permissions, dodelite dozvole SELECT ili UPDATE za kolone.
10. Kliknite na Column Permissions (slika 10.18.33.) i dodelite dozvole kolonama.
Slika 10.18.33. - Dodeljivanje dozvola za kolone unutar tabela
11. Kliknite na OK kako biste zatvorili okvir za dijalog Column Permissions i kako biste se vratili u okvir za dijalog Table Properties.
12. Kliknite na OK kako biste dodelili dozvole.