Provera identiteta u SQL Server-u

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:

  • SQL Server Windows (mešovito proveravanje identiteta)
  • Windows Only

 

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:

  1. Pokrenite SQL Server Management Studio Express.
  2. Desnim tasterom miša kliknite na server za koji želite da promenite način proveravanja identiteta i odaberite Properties. Prikazaće se okvir za dijalog Server Properties.
  3. Kliknite na čvor Security.
  4. Izmenite proveravanje identiteta (slika 10.18.1).

Slika 10.18.1. - Prikaz promene identiteta

 

Izmena proveravanja identiteta

Prednosti proveravanja identiteta tipa Windows Only:

  • Korisnik se prijavljuje samo jednom.
  • Upravljanje korisničkim nalozima se obavlja na jednom mestu.
  • Može se primeniti minimalna dužina lozinke.
  • Korisnički nalog se može zaklučati nakon zadatog broja neuspešnih prijavljivanja.
  • Proveravanje identiteta je bezbednije.
  • Lozinke su šifrovane.
  • Mogu se upotrebiti opcije za proveravanje.

 

Prednosti proveravanja tipa SQL Server i Windows u odnosu na proveravanje tipa Windows Only su:

  • Mešovito proveravanje identiteta vam omogućava da dozvolite pristup korisnicima koji ne upotrebljavaju operativni sistem Windows.
  • SQL Server naloge možete da koristite u operativnom sistemu Windows 9x

 

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

 

Pravljenje SQL Server korisničkog naloga

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.

 

Kako se prave uloge

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 uloge baze podataka
  • uloge baze podataka koje vi definišete
  • uloge aplikacija

 

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:

  • Bulk Insert Administrators (bulkadmin) – Dozvoljavaju se iskazi pomoću kojih se upisuje grupa slogova.
  • Database Creators (dbcreator) – Dozvoljava se pravljenje i menjanje baze podataka.
  • Disk Administrators (diskadmin)- Dozvoljava se upravljanje datotekama.
  • Process Administrators (processadmin) – Dozvoljava se upravljanje procesima SQL Server-a.
  • Security Administrators (securityadminin) – Dozvoljava se upravljanje korisničkim nalozima.
  • Server Administrators (serveradmin)- Dozvoljava se konfigurisanje Server-wide okvira.
  • Setup Administrators (setupadmin) - Dozvoljava se instaliranje replike i upravljanje proširenim svojstvima.
  • System Administrators (sysadmin) -  Dozvoljava se svaka aktivnost u instanci SQL Server-a. Obuhvaćene su sve aktivnosti drugih uloga.

 

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:

  1. Otvorite čvor Security i pronađite podčvor Server Roles.
  2. Desnim tasterom miša kliknite na ulogu koju želite da dodelite korisnicima i potom odaberite Properties. Prikazaće se okvir za dijalog Server Role Properties (slika 10.18.7). Kliknite Add kako biste korisniku dodelili ulogu. Prikazaće se okvir za dijalog Select Logins (slika 10.18.8).
  3. Kliknite Browse da biste odabrali korisničke naloge koje želite da dodate. Prikazaće se okvir za dijalog Browse for Objects (slika 10.18.9).
  4. Potvrdite polja pored objekta koje želite da dodate ulozi.
  5. Zatvorite okvir za dijalog Browse for Objects.
  6. Kliknite na OK. SQL Server će odabranim korisnicima dodeliti uloge.

 

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:

  • db_accessadmin - Dozvoljava se dodavanje i uklanjanje Windows korisnika i grupa i SQL Server-a korisnika baze podataka.
  • db_backuppoperator - Dozvoljava se pravljenje rezervne kopije baze podataka.
  • db_datareader – Dozvoljava se čitanje podataka iz svih tabela korisnika koje postoje u bazi podataka.
  • db_datawriter – Dozvoljava se upisivanje, menjanje i uklanjanje podataka iz svih tabela korisnika koje postoje u bazi podataka.
  • db_ddladmin – Dozvoljava se pravljenje, menjanje i uklanjanje objekata baze podataka.
  • db_denydatareader – Ne dozvoljava se čitanje podataka iz baze podataka.
  • db_denydatawriter – Ne dozvoljava se menjanje podataka u bazi podataka.
  • db_owner – Dozvoljavaju se aktivnosti koje su dozvoljene svim drugim ulogama. Dozvoljeno je obavljanje svih poslova za održavanje i konfigurisanje baze podataka.
  • db_securityadmin – Dozvoljava se upravljanje ulogama i iskazima i dozvolama objekata baze podataka.

 

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.

 

Uloge baze podataka koje definišete

U SQL Server-u mogu da postoje dva tipa uloga koje definišete, to su:

  • Standardne uloge (standard roles) – uloge koje koristite za olakšavanje dodeljivanja dozvola korisnicima baze podataka.
  • Aplilkacijske uloge (Application roles) – uloge koje koristi svaka aplikacija.

 

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‘

 

Proveravanje dozvola u SQL Server-u

Tipovi dozvola:

  • Dozvole za objekte – skup dozvola za objekte kakvi su tabele i pogledi. To su dozvole Select, Insert, Update i Delete.
  • Dozvole za iskaze – Dozvole koje se odnose na iskaze kakav je recimo iskaz Create view. Pomoću ovih dozvola se definiše koja prava korisnik ima za neki iskaz.
  • Nasleđene i implicitne dozvole – ove dozvole se odnose na prava koja korisnik ima za objekat jer je član uloge koja ima prava za objekat.

 

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:

  • GRANT – Pomoću ovog iskaza se dodeljuje dozvola.
  • WITH GRANT – Pomoću ovog iskaza omogućavate da korisnik ili uloga imaju. pravo da dodele dozvole za objekat drugim korisnicima ili ulogama.
  • DENY- Pomoću ovog iskaza se oduzima dozvola tako da se dozvola za objekat ne može naslediti.


Upravljanje dozvolama za objekata

Za detaljnije informacije o upravljanju dozvolama pogldajte PDF fajl.

 

Dozvole za rad sa tabelama

Za tabelu možete da dodelite dozvole ALTER, CONTROL, DELETE, INSERT, SELECT, TAKE OWNERSHIP, UPDATE i VIEW DEFINITION.

  • Dozvole ALTER - Dozvole ALTER omogućavaju korisniku da izmeni sva svojstva tabele, osim vlasništva. Ove dozvole omogućavaju pravljenje, menjanje i uklanjanje tabela.
  • Dozvole CONTROL – Dozvole CONTROLE dodeljuju osobine vlasništva za objekat. Korisnik može da upravlja objektom (da dodeljuje dozvole i tako dalje) ima dozvolu za sve objekte unutar tog objekta). Korisnik koji ima dozvolu CONTROL za bazu podataka, može da upravlja bazom podataka.
  • Dozvole DELETE – Dozvole DELETE omogućavaju korisniku da uklanja podatke iz tabele.
  • Dozvole INSERT – Dozvole INSERT omogućavaju korisniku da upisuje podatke u tabelu.
  • Dozvole SELECT – Dozvole SELECT omogućavaju korisnicima da prikazuje podatke iz tabele.
  • Dozvole TAKE OWNERSHIP – Dozvole TAKE OWNERSHIP omogućavaju korisniku da preuzme vlasništvo nad tabelom za koju je dodeljena ova dozvola.
  • Dozvole UPDATE – Dozvole UPDATE omogućavaju korisniku da ažurira podatke u tabeli.
  • Dozvole VIEW DEFINITION – Dozvole VIEW DEFINITION omogućavaju korisniku da radi sa metapodacima tabele.

 

Korake za dodelu dozvola za tabelu (i detaljnije informacije o drugim dozvolama) možete da vidite u PDF fajlu.

 

Implementiranje zaštite na nivou kolone

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.

Dodaj komentar Sviđa mi se - (1) Ne sviđa mi se - (0)    

  • Implementiranje privilegija na sistem 1
  • Implementiranje privilegija na sistem 2
  • Implementiranje privilegija na sistem 3