Ponekad različitim korisnicima treba pristup istom izveštaju, ali svaki korisnik treba da vidi samo neke podatke. Na primer, regionalni menadžer prodaje treba da vidi samo podatke vezane za njegovu ili njenu teritoriju. U ovom slučaju bezbednost na nivou stavki je zadovoljavajuća samo ako se napravi izveštaj sa drugačijim upitom u svakom izveštaju, kako bi se ograničili podaci samo na jednu teritoriju prodaje. Ako dosta izveštaja zahteva slično razdvajanje za različite grupe korisnika, održavanje i bezbednost svih varijanti može brzo postati gotovo nemoguće. Umesto toga, možete izabrati tehniku koja će Vam omogućiti da koristite jedan izveštaj, koji još uvek zadovoljava zahteve za ograničavanje podataka koje korisnik može da vidi.

Najjednostavniji način ograničavanja na podatke koje korisnik može da vidi u izveštaju jeste korišćenje povezanih izveštaja sa parametrima. Korišćenjem ovog pristupa, možete jednostavno kontrolisati koji će se podaci prikazati u izveštaju, a onda korišćenjem bezbednosti na nivou stavke možete kontrolisati pristup svakom izveštaju. Alternativno, možete dizajnirati izveštaj koristeći prednosti User funkcije iz kolekcije globalnih parametara kako biste identifikovali trenutnog korisnika. Možete proslediti identitet korisnika parametru upita ili izvršiti filtriranje podataka u izveštaju.


Korišćenje uloga i parametara za ograničavanje podataka

Kao što več znate, korišćenjem parametra izveštaja možete izvršiti filtriranje podataka na izvoru sa parametrima upita ili filtriranjem podataka izveštaja nakon što se popuni dataset. Tada možete postaviti različite vrednosti parametara za svaki povezani izveštaj, tako da ih korisnik ne može menjati i time ograničiti izveštaj na podatke definisane vrenošću parametra. Svaki povezani izveštaj može se čuvati u zasebnom folderu kojem ste pridružili ulogu, kako biste osigurali pristup ili možete pridružiti ulogu svakom povezanom izveštaju da biste upravljali bezbednošću na nivou izveštaja.

Sada ćete napraviti povezani izveštaj iz Actual Vs Quota izveštaja, korišćenjem parametra i bezbednosti na nivou stavke da biste ograničili prostup EuropeDirector korisnicima i lokalnim sistem administratorima.

  1. Ako Report Manager otvoren pokrenite Internet Explorer i unesite adresu http://localhost/Reports.
  2. Kliknite na Home link na vrhu strane, kliknite na Adventure Works Samples link foldera, kliknite na Actual Vs Quota link izveštaja, i onda kliknite na Properties tab.
  3. Kliknite na Security link.
  4. Kliknite na Edit Item Security, a onda kliknite na OK kako biste potvrdili da želite izmene.
  5. Čekirajte AWSalesAnalyst i AWSalesDirector i onda kliknite na Delete.
  6. Kliknite na OK da biste potvrdili brisanje.
  7. Kliknite na General link.
  8. Kliknite na Create Linked Report.
  9. Unesite naziv izveštaja, Actual Vs Quota Europe, i onda kliknite na OK.
    Zapazite da je podrazumevana vrednost Group parametra North America. Za ovaj povezani izveštaj potrebno je da promenite vrednost u Europe i da onda sakrijete prompt parametra.
  10. Kliknite na Properties tab, a onda kliknite na Parameters link.
  11. Unesite Europe u Default Value boks za Group parametar.
  12. Za Group parametar, očistite Prompt User check boks. Parameters Properties strana izgleda kao na slici.

  13. Kliknite na Apply.
  14. Kliknite na Security link.
  15. Kliknite na Edit Item Security, a onda kliknite na OK da biste potvrdili da želite izmene.
  16. Kliknite na New Role Assignment.
  17. Unesite EuropeDirector u Group Or User Name boks.
  18. Čekirajte Browser.
  19. Kliknite na OK. Security Properties strana Actual Vs Quota Europe izveštaja izgleda kao na slici.

  20. Zatvorite Internet Explorer.
  21. Kliknite na Start, izaberite All Programs, desnim kikom kliknite na Internet explorer, i onda kliknite na Run As.
  22. Kliknite na Following User, a onda unesite EuropeDirector za username i EuropeDirector za password.
  23. Otvorite Report Manager na lokaciji http://localhost/Reports.
  24. Kliknite na Adventure Works Samples link foldera, i onda kliknite na Actual Vs Quota
    Europe izveštaj.
    Zapazite da Actual Vs Quota izveštaj više nije vidljiv.
  25. Kliknite na View tab, kliknite na Full Screen da biste proširili pregled i onda odskrolujte dole da biste videli celu tabelu. Izveštaj izgleda kao na slici.


    Možete videti samo Sales Representatives za Europe: Amy Alberts, José Saraiva, Rachel Valdez i Ranjit Varkey Chudukatil.
  26. Zatvorite Internet Explorer.
  27. Kliknite na Start, izaberite All Programs, desnim klikom kliknite na Internet Explorer i onda kliknite na Run As.
  28. Izaberite Following User i unesite NADirector za korisnika i NADirector za šifru.
  29. Otvorite Open Report Manager na lokaciji http://localhost/Reports.
  30. Kliknite Adventure Works Samples link foldera.
    Ni Actual Vs Quota ni Actual Vs Quota Europe nisu dostupni NADirector, otkako bezbednost na nivou stavke ne uključuje ulogu za ovog korisnika.
  31. Zatvorite Internet Explorer.



Ograničenje izvornog upita korisnikom

Korišćenje parametara i povezanih izveštaja da bi se ograničio pristup je dobar način kada  ne brinete o toma da li će lokalni administrator sistema otvarati izveštaje. Čak i ako Content Manager ukloni BUILTIN\Administrators ulogu koja je dodata izveštaju, lokalni administrator sistema još uvek ima mogućnost da resetuje bezbednost i da eventualno otvori izveštaje. Da biste zaštitili poverljive podatke, možete dizajnirati izveštaj koji koristi parametar izveštaja za filtriranje dataset-a korišćenjem trenutnog korisnika (koji će biti domenski korisnički nalog pre nego lokalni).

Ova tehnika zahteva da napravite i održavate tabelu sa dozvolama koje mapiraju Windows korisničke naloge sa vrednostima korišćenim u ograničavanju podataka. Na primer, možete mapirati korisnički nalog EuropeDirector u vrednost Europe. Tabela sa dozvolama sadrži kolonu za korisnički nalog i kolonu za vrednost filtera. Tada dodate tabelu sa dozvolama u dataset upit u poverljivom izveštaju i uradite join-ovanje vrednosti filter kolone iz tabele sa dozvolama sa odgovarajućom kolonom tabele koja postoji u upitu. Parametar upita dodate i u WHERE kaluzulu upita, koja vrši komparaciju kolone sa korisničkim nalogom u tabeli sa  dozvolam i parametrom upita. Korisnički nalog trenutnog korisnika se ne dobija od parametra izveštaja već od operativnog sistema. Da biste dobili ovu vrednost potrebno je da koristite izraz =User!UserID.

Kada koristite @UserID parametar upita u dataset-u, izveštaj se uvek mora pokrenuti na zahtev da bi se postavio pravilan user context.

Sada ćete dodati parametar upita u dataset izveštaja da biste trenutnog korisnika prosledili kao filter u upit.

  1. Otvorite SQL Server Management Studio Express i konektujte se na Database Engine.
  2. Klikom na znak plus proširite Databases, proširite bazu rs2005sbsDW i proširite folder Tables.
  3. Desnim tasterom miša kliknite na PermissionsSalesTerritory tabelu, i onda kliknite na Open Table. Prikazaće se podaci koji postoje u tabeli.


    Ova tabela mapira korisnike u grupe za prodaju po teritorijama tako da možete prilagoditi Securing Source Query izveštaj za svakog direktora grupe. Morate kreirati sličnu tabelu za korišćenje sa izvorom podataka kada je potrebno da se ograniče podaci prema korisniku. Možete uključiti i druge kolone u neku vašu tabelu sa dozvolama, ali je kao minimum neophodno da postoji kolona sa punim imenom Windows naloga i kolona koja čuva vrednosti za filtriranje podataka na izvoru.
  4. Zatvorite SQL Server Management Studio Express.
  5. Pokrenite SQL Server Business Intelligence Development Studio i otvorite solution
    DataSecurity koji se nalazi, u repozitorijumu kursa, u folderu Materijali\4_05\DataSecurity.
  6. U Solution Explorer-u, otvorite izveštaj SecuringSourceQuery.rdl duplim klikom.
  7. Kliknite na Data tab.
  8. Kliknite na Show/Hide Grid Pane na Query Designer toolbar-u, i onda kliknite na Show/Hide Result Pane da biste napravili prostor za Diagram i SQL Panes.
  9. Sa izabranim Detail u Dataset padajućoj listi, kliknite na Add table na Query
    Designer toolbar-u.
  10. Duplim klikom kliknite na PermissionsSalesTerritory tabelu i onda kliknite na Close.
  11. Kliknite na SalesTerritoryGroup polje u DimSalesTerritory tabeli i prevucite ga na
    SalesTerritoryGroup polje u PermissionsSalesTerritory tabeli. Vaš dijagram izgleda slično kao na slici.


    PermissionsSalesTerritory tabela je sada povezana sa DimSalesTerritory tabelom preko SalesTerritoryGroup kolone. Međutim, upit još nije modifikovan da koristi ovo spajanje za filtriranje dataset-a sa korisnikom.
  12. Dodajte sledeći deo upita na kraju WHERE klauzule:

    and PermissionsSalesTerritory.UserId = @UserID

  13. Kliknite na Edit Selected Dataset desno od Dataset padajuće liste.
  14. Kliknite na Parameters tab u Dataset dialog boksu.
  15. U Parameters listi izmenite vrednost za @UserID parametar upita u =User!UserID. Dataset dialog boks izgleda kao na slici.


    Izraz =User!UserID vraća Windows nalog za korisnika koji je pokrenuo izveštaj, vrednost koja se nalazi u User globalnoj kolekciji
  16. Kliknite na OK.
  17. Kliknite na Layout tab, i onda kliknite na Report Parameters svojstvo Report-a.
  18. Izaberite UserID u Parameters listi, kliknite na Remove, i onda kliknite na OK.
    Kada dodajete parametar upita, odgovarajući parmetar izveštaja se dodaje u izveštaj. Međutim, u ovom slučaju, vrednost za parametar upita je obezbeđen iz izraza tako da je parametar izveštaja uklonjen.
    Snimite solution i kliknite na Preview tab da biste testirali izveštaj. Vaš prozor izgleda kao na slici.


    Pošto Vaš Windows nalog nije u tabeli sa dozvolama ne možete videti nikakve podatke u izveštaju.
  19. U Solution Explorer-u, desnim klikom kliknite na SecuringSourceQuery.rdl izveštaj i onda izaberite Deploy.
  20. Kliknite na Start, izaberite All Programs, desnim klikom kliknite na Internet Explorer i onda izaberite Run As.
  21. Kliknite na Following User i unesite EuropeDirector za username i EuropeDirector za password.
  22. Otvorite Report Manager na adresi http://localhost/Reports.
  23. Kliknite na DataSecurity link folder i onda kliknite na SecuringSourceQuery link izveštaja. Vrh izveštaja izgleda kao na slici.

    Ako skrolujete kroz izveštaj, videćete da podaci koji su u izveštaju uključuju samo United Kingdom, Germany i France. Ako korisnik koji nije u tabeli sa dozvolama, pokuša da otvori izveštaj, neće se prikazati podaci, kao što ste već iskusili u Visual Studio-u kada ste pokušali da pregledate izveštaj.
  24. Zatvorite Internet Explorer.

 

Filtriranje podataka izveštaja korisnikom

Drugi način da zaštitite poverljive podatke je dizajniranje izveštaja korišćenjem izraza =User!UserID za filtriranje dataseta posle izvršavanja upita. Kao što je i kod pristupa sa parametrom izveštaja, tako i ovaj pristup zahteva postojanje tabele sa korisnicima koji se mogu pridružiti dataset-u. Korišćenjem ovog scenarija i dalje se pridružuje tabela sa dozvolama postojećoj tabeli u upitu. Međutim, umesto korišćenja WHERE klauzule upita za filtriranje podataka po korisniku, dodaje se UserId kolona iz tabele sa dozvolama u SELECT klauzulu tako da postaje polje u dataset-u. Zatim se dodaje filter u dataset koji poredi vrednost polja sa vrednošću koja je dobijena iz izraza =User!UserID.

Sada ćete dodati filter u dataset izveštaja da bi limitirali prikazane podatke.

  1. U Solution Explorer-u u Visual Studio-u, dupli klik na SecuringReportData.rdl da biste otvorili izveštaj.
  2. Kliknite na Data tab.
  3. Sa selektovanom stavkom  Detail u Dataset padajućoj lsiti, kliknite na Add Table na Query
    Designer toolbar-u.
  4. Dupli klik na PermissionsSalesTerritory tabelu i onda kliknite na Close.
  5. Kliknite na SalesTerritoryGroup polje u DimSalesTerritory tabeli i onda prevucite na SalesTerritoryGroup polje u PermissionsSalesTerrritory tabeli.
  6. U PermissionSalesTerritory tabeli, kliknite na UserId da biste dodali kolonu u SELECT klauzulu upita.
  7. Kliknite na Edit Selected Dataset desno od Dataset padajuće liste.
  8. Kliknite na Filters tab u Dataset dialog boksu.
  9. Kliknite na =Fields@UserId.Value u Expression padajućoj listi.
  10. Kliknite na <Expression…> u Value padajućoj listi.
  11. Kliknite na Globals u Fields listi, kliknite na UserID i onda kliknite na Paste. Možete i uneti =User!UserID u Expression boks. Dataset dialog boks izgleda kao na slici.

  12. Kliknite na OK.
  13. Snimite solution i onda kliknite na Preview tab.
    Kao što je bio slučaj i sa SecuringSourceQuery izveštajem, ne možete videti nikakve podatke u izveštaju pošto Vaš nalog ne postoji u tabeli sa dozvolama.
  14. Desni klik na SecuringReportData.rdl izveštaj u Solution Explorer-u i onda klik na Deploy.
  15. Kliknite na Start, kliknite na All Programs, desnim klikom kliknite na Internet Explorer i onda kliknite na Run As.
  16. Izaberite Following User i unesite NADirector za korisnika i NADirector za šifru.
  17. Otvorite Report Manager na lokaciji http://localhost/Reports. Kliknite na DataSecurity link foldera i onda kliknite na SecuringReportData izveštaj. Vrh izveštaja izgleda kao na slici.


    Ako skrolujete kroz izveštaj, možete videti da podaci u izveštaju uključuju samo North American teritorije - United States i Canada.
  18. Zatvorite Internet Explorer.

 

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

  • Primena bezbednosti na podatke 1
  • Primena bezbednosti na podatke 2