Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Definisanje privilegija korisnicima programa

[es] :: Pascal / Delphi / Kylix :: Definisanje privilegija korisnicima programa

[ Pregleda: 3442 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Nikola Radojicic
Impol Seval AD Sevojno
Uzice

Član broj: 65384
Poruke: 32
195.178.56.*



Profil

icon Definisanje privilegija korisnicima programa14.11.2005. u 14:07 - pre 226 meseci
OK, npr. zavrsili smo izdadu nase aplikacije.

Logicno je da na pocetku korisnik mora da upise svoje korisnicko ime i npr. lozinku. Ako je to pravilno uneto, korisnik ulazi u aplikaciju, u suprotnom, trazi se ponovna prijava ili se iskljucuje.

Ovo se realizuje primenom jedne tabele sa imenima i lozinkama korisnika, kojoj pristup ima jedino administrator aplikacije.

Moglo bi se napraviti jos da svaki korisnik moze po svojoj zelji da promeni svoju lozinku, ako to pozeli, radi sigurnosti.

Naravno, sve ovo je potrebno da bi se kasnije koristilo ime korisnika, kada u slogovima koji se azuriraju treba upisati ime korisnika koji je zadnji izvrsio izmenu, sa dodavanjem datuma i vremena izmene. Ovim ubedimo korisnike da se pamti ko je sta radio, tako da treba obratiti paznju kod unosa podataka.

Ali ovo je samo pocetak zastite. Korisnicima treba zabraniti meni sa servisnim programima u kome su npr. pregledi korisnika, tabela prijava, podesavanje parametara programa, idenata u tabelama... Ovaj zahtev bi se mogao obezbediti sa jednim poljem u tabeli korisnika, sa A=administrator ili K=korisnik, pa da se uvek kod postavke aplikacije gleda i ovaj podatak.

Ali ovo se komplikuje kada korisnicima treba osim servisnih opcija, zabraniti i npr. neku grupu menija koja nije u njihovom domenu rada (npr. rad sa podacima o racunarima u mrezi, ...). Ovo bi takodje moglo da se odradi uvodjenjem novih polja u tabelu korisnika za svaku grupu osnovnog menija, mada mi se ovo vec ne dopada, jer sistem nije fleksibilan, tako da bi uvek u toku prosirenja aplikacije morala da se menja i struktura baze korisnika i unos privilegija.

Sledeca komplikacija: ajde da sad kod svake opcije menija koja odradjuje neki podprogram odredimo da li korisnik moze da pristupi toj opciji ili ne. To je vec mnogo za onu tabelu korisnika i razmisljam o nekoj novoj tabeli sa definisanjem imena korisnika i opcijama menija koje moze ili ne moze da koristi. Ali moraju se onda za svakog novog korisnika nanovo unositi mnogobrojni podaci.

I na kraju, finale komplikovanja: neki korisnik moze samo da gleda podatke u otvorenoj tabeli, drugi moze i da ih menja, treci moze i da ih brise. Tek kada ovo obezbedimo, cini mi se da smo spremni da pustimo aplikaciju u koriscenje u mreznom ili visekorisnickom radu.

Pitanje se odnosi na Vasa iskustva u ovoj oblasti, kako ste Vi to resavali, kako ste organizovali tabele sa definisanjem privilegija korisnicima, i kako ste obezbedili da se privilegije lako unose za veci broj korisnika.

Nije hitan odgovor, prikljucite se kad budete imali vremena za ovu diskusiju.
 
Odgovor na temu

Zmaj
Predrag Krstić
web developer
Zrenjanin

Član broj: 1035
Poruke: 382

Sajt: https://pkrstic.wordpress..


+4 Profil

icon Re: Definisanje privilegija korisnicima programa14.11.2005. u 19:23 - pre 226 meseci
pa kako pises nisi ni blizu zavrsetku tvoje aplikacije, a za prava probaj sa nivoima privilegija, to je jednostavnije resenje, ili sa jednim stringom slicno unix pravima ili najkomplikovanije i najsporije za svaku kontrolu napravi id i povezi ga sa parom korisnik u nekoj tabeli
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: Definisanje privilegija korisnicima programa14.11.2005. u 19:38 - pre 226 meseci
Do sada nikad nisam naisao na problem koji nisam mogao da resim sa nivoima pristupa. Samo jedno polje u bazi (tipa integer) mi sluzi za prikazivanje ili skrivanje odredjenih menija, dozvolu citanja, pisanja, brisanja... npr. Obican "gost" ima nivo pristupa 1 i moze da gleda npr. lager listu, cenovnik i slicno. Registrovane firme imaju nivo pristupa 2 i mogu sve sto moze i gost + da rezervisu robu za svoju firmu, da ostavljaju privatne poruke zaposlenima i slicno... itd... na kraju direktor ima nivo pristupa 1000 i moze da radi sve. To je to sto se cuva u bazi. U programu koristim Tag da bih sacuvao podatke o potrebnim nivoima pristua za odredjenu operaciju. Za vecinu kontrola je dovoljan samo jedan broj... ako je Tag recimo 4, a korisnik ima nivo pristupa 2 tada ce tan kontrola biti sakrivena ili disable-ovana, a ako je nivo pristupa 4 ili veci tada sa tom kontrolom moze da se radi. Za neke kontrole je potrebno par brojeva... recimo za neki grid moze da se sacuva 3 nivoa pristupa-jedan za citanje, jedan za citanje i pisanje i jedan za citanje, pisanje i brisanje. Tada se u Tag nalazi pointer na neku strukturu ili klasu koja drzi ta tri broja. I to je to.

Ako program ima vize celina (maloprodaja, veleprodaja, finansije...) mogu se napraviti nivoi pristupa posebno za svaku oblast sto znaci da u bazi mora biti polja sa nivoima pristupa koliko ima grupa u programu i svaka kontrola uz nivo pristupa koji je asociran uz nju mora da ima i oznaku grupe kojoj pripada.

Do sad sam uvek tako radio i nisam imao nikakvih problema.

Ako je za neki poseban deo potrebna veca kontrola onda ne vidim drugu mogucnost nego da se specijalno za taj deo otvori posebna tabela u kojoj ce biti podaci o mogucnostima koje korisnici imaju u tom delu programa.
 
Odgovor na temu

_v!rus_
BGD

Član broj: 40451
Poruke: 313
*.dsl.siol.net.



+1 Profil

icon Re: Definisanje privilegija korisnicima programa16.11.2005. u 22:16 - pre 226 meseci
Posto se pokretac thread-a ne javlja vec 2 dana verovatno je resio problem, ali 'for the sake of argument' ja bi dodao nesto "malo" na temu.

Nivoi pristupa su OK, ali ako treba puna fleksibilnost sistema privilegija mislim da to nije dovoljno. Pretpostavimo da privilegije ne idu uvek sistemom podskupova (tj. nivoima pristupa), nego npr. da neki korisnici mogu da vrse operacije samo jedne grupe, a neki samo operacije neke druge grupe. A ima P grupa korisnika i Q grupa privilegovanih operacija. Sa nivoima pristupa morao bi onda da se definise floor i ceiling nivoa pristupa za svaku operaciju i neko bi morao da se posteno oznoji da uklopi te brojke koje bi predstavljale nivoe korisnickog pristupa, da ne pominjem kasnije nadogradnje sistema i sl. egzibicije...
S'druge strane, koriscenje "par brojeva", pogotovu dodavanje klasa za privilegije je neekonomicno i veoma bug-prone (po mom misljenju).

Mislim da bi ovde mozda bolje resenje bili flegovi spakovani u jedan Integer, znaci sa jednim integerom bi pokrili do 32 privilegije.
Privilegije definises kao konstante sa vrednostima 1, 2, 4, 8, 16, 32...
Npr. PrvRead=1, PrvWrite=2, PrvDelete=4... Sada, ako korisnik ima privilegije PrvRead, PrvWrite i PrvDelete njegov kljuc je UserPrv := PrvRead or PrvWrite or PrvDelete. Za neku operaciju za koju su porebne samo read i write prvilegije, kljuc je ServicePrv := PrvRead or PrvWrite. Kada proveravamo da li neki korisnik ima potrebne privilegije za operaciju uradimo sledece:
Code:

if UserPrv and ServicePrv=ServicePrv then
  OK;
else
  NeOK;


Ove bitwise zajebancije su inace jako korisne i za mnoge druge stvari...
Istu stvar radi i Delphi "ispod haube" sa svojim setovima, tako da sve ovo u Delphiu moze i sa npr.

Code:

type TPrivileges = set of (PrvRead, PrvWrite, PrvDelete)
UserPrv, ServicePrv:  TPrivileges;
UserPrv := [PrvRead, PrvWrite] + [PrvDelete] - [PrvWrite]...
if UserPrv * ServicePrv = ServicePrv then ...


Elegantno i sigurno...

Jedino je problem sto se setovi ne mogu lako strimovati, npr. zapisati u bazu ili Tag property, nego se moraju strimovati kao Integer^ ili Byte^ na @SetPrivilegija. Workaround je O.Pascal-ova varijanta C-ovog union-a, iliti case uokviru record-a (jako nepopularno

Code:

type TPrivileges = set of (PrvRead, PrvWrite, PrvDelete);
type TValuedPrivileges = record
  case Boolean of
    True: (Privileges: TPrivileges);
    False: (Value: Byte);
end;


Na ovaj nacin TValuedPrivileges.Value i TValuedPrivileges.Privileges pokazuju na istu mem. lokaciju posmatranu iz dva ugla, prema tome TValuedPrivileges se mogu strimovati.

E da, jos jedna jako bitna stvar: Ako je u TPrivileges definisano do 8 privilegija onda TValuedPrivileges.Value je tipa bajt, preko 8 je Integer, posto se clanovi seta definisu u designtime-u Delphi pri kompajliranju odredjuje najmanji tip koji je potreban za cuvanje.

Malo sam se raspisao ali nema veze, vezbam slepo kucanje na koristan nacin...
Trebao sam ici u pravno-birotehnicku, za 2 meseca bi bio profi a ovako i posle 2 godine vezbanja i dalje nemam pojma...

Pozdrav!

[Ovu poruku je menjao _v!rus_ dana 16.11.2005. u 23:49 GMT+1]
 
Odgovor na temu

_v!rus_
BGD

Član broj: 40451
Poruke: 313
*.dsl.siol.net.



+1 Profil

icon Re: Definisanje privilegija korisnicima programa16.11.2005. u 22:47 - pre 226 meseci
Ajde i jos jedna potencijalno korisna stvar, nesto sto sam pokupio na poslu pre nekog vremena:
Napravis jedan globalni objekat Session: TUserSession koja cuva ime trenutnog korisnika, njegove privilegije, kada se ulogovao itd. Dodas jos par metoda, npr.

Code:

TUserSession.Post(Dataset: TDataset);
begin
  Dataset.FieldByName('UserID').AsString := Self.FUserID;
  Dataset.FieldByName('LastModified).AsDateTime := Self.ServerNow;
  ///...eventualno jos neka polja...
  Dataset.Post;
  if not Self.IterativeUpdate then
    Self.WriteToLog(FUserID, ServerNow, Dataset.Name)
end;
...
TUserSession.LogIn(UserName, Pwd: String): Boolean;
TUserSession.LogOut;
TUserSession.UserLoggedIn: Boolean;
TUserSession.HasPrivileges(Required: TPrivileges): Boolean; 
///Sta gos jos zatreba
...


Onda svugde umesto NekiDataset.Post koristis Session.Post(NekiDataset) i zapise se i UserId, vreme promene i sl. Mozes i jos da napises neke svoje Session.ExecSQLAppend i ExecSQLUpdate(Qr: T[ADO]Query) da rade slicne stvari...
Nije lose spomenuti jos da pri pisanju u LastModified polja nije lose koristiti serverov DateTime a ne lokalni...

[Ovu poruku je menjao _v!rus_ dana 16.11.2005. u 23:47 GMT+1]
 
Odgovor na temu

obucina

Član broj: 38191
Poruke: 723

Jabber: obucina


+7 Profil

icon Re: Definisanje privilegija korisnicima programa17.11.2005. u 15:20 - pre 226 meseci
Sigurnost aplikacije treba bazirati na sistemu sigurnosti baze podataka (ako pricamo o programima koji rade sa bazama podataka). Po meni, treba stititi pristup podacima, a ne pristup komandama programa. Svaki program koji radi sa bazom podataka, a cija sigurnost se zasniva na nekim improvizovanim sistemima zastite, prosto vapi za zloupotrebom.
Bazirati zastitu programa na sakrivanju i iskljucivanju (Enable := False), elemenata korisnickog interfejsa je smesno. To nije ni "wannabe" zastita. Neko moze uzeti program za rad sa tom bazom podataka i direktno je menjati. A malo vestiji programer, moze da napravi pravo igraliste od ovako "zasticenog" programa.
Ja dozvoljavam da se otvore svi delovi programa, a tamo gde nema pristupa, korisnik dobija poruku o nedostatku potrebnih dozvola (koja se generise kada baza podataka prijavi nedostatak dozvole).
BTW, postoje neke komponente za sigurnost na nivou korisnickog interfejsa, ne secam se kako se zovu, ali znam da postoje...


[Ovu poruku je menjao obucina dana 17.11.2005. u 16:39 GMT+1]
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: Definisanje privilegija korisnicima programa17.11.2005. u 16:57 - pre 226 meseci
Koliko sam shvatio iz prvog posta, nije problem sigurnost baze nego vidljivost komponenti i njihove mogucnosti na formi. Neko ko, recimo radi u maloprodaji, nema potrebe da vidi menije i kontrole za rad sa finansijama, veleprodajom, proizvodnjom, uvozom, izvozom... time se dobija i na preglednosti, a i manje se zbunjuju korisnici koji nisu navikli na rad sa racunarom.

Mada... mozda Nikoli ustvari i treba sigurnost tabela u bazi :)
 
Odgovor na temu

_v!rus_
BGD

Član broj: 40451
Poruke: 313
*.dsl.siol.net.



+1 Profil

icon Re: Definisanje privilegija korisnicima programa17.11.2005. u 18:21 - pre 226 meseci
Citat:

Svaki program koji radi sa bazom podataka, a cija sigurnost se zasniva na nekim improvizovanim sistemima zastite, prosto vapi za zloupotrebom.
...
A malo vestiji programer, moze da napravi pravo igraliste od ovako "zasticenog" programa.
...


Mislim da ovo nema bas neke veze sa temom (implementacija sistema privilegija u programu). Privilegije o kojima mi ovde raspravljamo upotrebljive su takodje i za programe koji uopste ne koriste baze podataka, nego npr. ogranicavaju korisnika jednog shell programa, i mogu se koristiti kako god hoces a ne samo kao disable/hide odredjenih elemenata U/I-a. Uostalom, bilo koji ozbiljniji DB engine obezbedjuje sigurnosne sisteme, a takodje i sam OS.

Posto covek pravi sistem privilegija za program za preduzece, sigurno nece bazu drzati lokalno. Voleo bih da vidim da taj tvoj "malo vestiji programer" dodje u firmu sa CD-om sa tracerima, C kompajlerom i WinAPI helpom, dobaci sekretarici da ima dobro dupe, udje u kancelariju i zatim uz kafu i cigare napravi svoj licni "playground" od takvog programa, pritom naravno zaobidje i login na sistem, i login na bazu, sta je to za "malo vestijeg programera". Pricas price kao da su svi sisali vesla sem tebe.

[Ovu poruku je menjao _v!rus_ dana 17.11.2005. u 19:22 GMT+1]
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: Definisanje privilegija korisnicima programa17.11.2005. u 18:54 - pre 226 meseci
@_v!rus_
Nema potrebe za raspravom. Ja recimo u svojoj firmi kad nesto zeznem konektujem se preko web-a na bazu i direktno u tabelama izmeni "ko je radio dokument" i skinem krivicu sa sebe :) Eto... a nisam ni neki hacker, ni neko ko dobro zna da radi sa bazama... programeri su jednostavno ostavili bazu sa default user i pass koji ima sva ovlascenja i zato mogu to da radim, ali ne bitno. Mozda ce Nikola, zbog posta koji je napisao obucina, da razmisli i na tu temu :)
 
Odgovor na temu

_v!rus_
BGD

Član broj: 40451
Poruke: 313
*.dsl.siol.net.



+1 Profil

icon Re: Definisanje privilegija korisnicima programa17.11.2005. u 19:39 - pre 226 meseci
@Srki
Ma dobronamerno skrenuti paznju je jedna stvar, ali nazivati ideje drugih ljudi "smesnima", "wannabe", itd., zatim sve to zavrsiti recenicom koja pocinje sa "Ja...", to je nesto sasvim drugo.

I da je bar dao konkretno sta je to sto je uradio sa svojom zastitom, iako u ovoj temi uopste nije rec o zastiti same baze, nego neke mutne aluzije na inner-workings njegovog sistema, verovatno da mi manje nadareni imamo o cemu da mastamo. Jednostavno ne volim takve situacije, pogotovo glavne aktere istih.

To sto ti menjas bazu u firmi - za to su krivi administratori, da su stavili pwd na "sa", cak i da jesi ne-znam-kakav haker ipak bi se posteno oznojio da izmenis record. Zato se meni svidelo ono sa TUserSession, ta klasa u sebi cuva i username i pass za bazu i postavlja ConnString pri svakom pristupu.
 
Odgovor na temu

obucina

Član broj: 38191
Poruke: 723

Jabber: obucina


+7 Profil

icon Re: Definisanje privilegija korisnicima programa18.11.2005. u 00:15 - pre 226 meseci
Ne znam zasto tako reagujes. Evidentno je da je zastita losa, kada sa tri do pet Win API funkcija moze ceo takav sistem zastite da se rasturi. Nisu potrebni ni traceri, ni kompajleri ni WinAPI help, ali to dobro sekretaricino dupe moze, doprinelo bi atmosferi. Svidelo se to tebi ili ne, to je losa zastita.

U recenici koju pocinjem sa JA, opisujem svoju praksu i ne mogu je poceti sa TI. Nemam potrebu da mutno aludiram na bilo sta, ljude odavde ne poznajem, ne saradjujem sa njima i ne zavisim ni ja od njih, ni oni od mene. Apsolutno me ne zanima sta bilo ko od njih misli o meni i inner-working-u mojih sistema. Ovde sam da se zabavim i pomognem kada mogu.

O temi - komponente koje sam pomenuo su besplatne, u javnom su vlasnistvu i nalaze se na adresi:

http://sourceforge.net/projects/usercontrol/

Kratak opis:
Delphi (and Kylix) component package to user and profile management and access control. Supports ADO, DBX, IBX, BDE, IBO, FIBPlus, ZeosDBO, DBISAM, MDO, MyDAC, MySQLDAC and ASTA3. Access control auto-extract TMenu, TActionList and TActionManager items.
 
Odgovor na temu

_v!rus_
BGD

Član broj: 40451
Poruke: 313
*.zaslon-telecom.si.



+1 Profil

icon Re: Definisanje privilegija korisnicima programa18.11.2005. u 09:33 - pre 226 meseci
Sistem privilegija je sastavni deo i mora biti sastavni deo korisnickog interfejsa da bi program bio smislen i lak za upotrebu. U cemu je poenta korisnickog interfejsa ako ti na njemu mozes da izaberes samo login i exit jer nemas prava nizasta drugo, a to da nemas prava nizasta drugo saznaces tek onda kada aplikacija pokusa da pristupi bazi. Korisnik bi prosao kroz tri dialoga i 20 opcija da bi saznao da nema pristup pravljenju jednog pisljivog izvestaja.

Kako kazes, samo iznosis svoja iskustva, da tebe neka baba iz opstine zove 3 puta na dan da te pita sta znaci "Access Denied" ili srpska varijanta istog, iako si joj najmanje 60 puta objasnio, da vidis kako bi i te kako primenio privilegije u layout-u interfejsa. Interfejs treba da vodi korisnika kroz program, a ne da ga vuce za nos sa pravima pristupa, a ako neko nece to da implementira to je cista lenjost a ne programerska vestina. Zastita podataka u samoj bazi sasvim se jednostavno radi postavljem korisnika i sigurnosti na DB serveru, tu nema nikakve mistike i dobro razradjen sistem privilegija u kor. programu/programima savrseno ga komplementira. Na kraju krajeva ako neko toliko hoce da ti provali u bazu, nece ga spreciti ni tvoja top-notch zastita, ni nesto za tri koplja iznad.

A ako ti je prozivanje drugih tvoja verzija zabave i pomoci, onda neka hvala, bolje zadrzi to za nekoga kome treba takva pomoc. Napisati da je nesto "smesno" i da "vapi za zloupotrebom" po meni je pretenciozno i nezrelo, i kompletan stav tvog posta je u najvecu ruku sarkastican i omalovazavajuci, sto po meni nije nimalo OK, a da si bar pogodio temu, ili da bar imas poentu ili konstruktivan predlog onda ni po jada, tvoja prica, ili bar njen iole smisleni deo, se svodi na to da podaci nisu sigurni, ali guess what, ni sa tvojim ni sa bilo cijim sistemom nisu sigurni od tog fiktivnog "malo boljeg programera", jer uvek postoji i malo bolji programer od njega, a te fantazije tipa "swordfish" o "zloupotrebi" programa za magacin uopste nemaju realne osnove. Zato tako reagujem, zato sto mi je ovo tvoje bilo one-too-many takvih komentara.
 
Odgovor na temu

obucina

Član broj: 38191
Poruke: 723

Jabber: obucina


+7 Profil

icon Re: Definisanje privilegija korisnicima programa18.11.2005. u 17:57 - pre 226 meseci
Ne znam sto se raspravljam sa tobom, ali, jos ova jedna poruka i zavrsavam.
Citat:
Nikola:
Naravno, sve ovo je potrebno da bi se kasnije koristilo ime korisnika, kada u slogovima koji se azuriraju treba upisati ime korisnika koji je zadnji izvrsio izmenu, sa dodavanjem datuma i vremena izmene. Ovim ubedimo korisnike da se pamti ko je sta radio, tako da treba obratiti paznju kod unosa podataka.

Dalje:
Citat:
Nikola:
I na kraju, finale komplikovanja: neki korisnik moze samo da gleda podatke u otvorenoj tabeli, drugi moze i da ih menja, treci moze i da ih brise. Tek kada ovo obezbedimo, cini mi se da smo spremni da pustimo aplikaciju u koriscenje u mreznom ili visekorisnickom radu.

I na kraju, sto posebno zelim da naglasim:
Citat:
Nikola:
Pitanje se odnosi na Vasa iskustva u ovoj oblasti, kako ste Vi to resavali, kako ste organizovali tabele sa definisanjem privilegija korisnicima, i kako ste obezbedili da se privilegije lako unose za veci broj korisnika.

Covek evidentno prica o programu koji radi sa bazama podataka. U tom kontekstu (sto sam i naveo, pogledaj poruku), kazem da je baziranje sigurnosti na nekim improvizovanim metodama smesno, posto baze podataka poseduju sopstvene sisteme zastite koji na najbolji moguci nacin stite podatke. Glupo je pruziti korisniku mogucnost da radi sa celom bazom, a zatim tu mogucnost ogranicavati
skrivanjem i iskljucivanjem elemenata korisnickog interfejsa, sto je njegova slika bezbednosti sistema. Da si pazljivije procitao i njegovu i moju poruku, bilo bi ti jasno o cemu se govori i ne bi lupetao o nekim mojim mutnim aluzijama.

Tvoji komentari su iskarikirani i zlonamerni, tako da se necu dalje raspravljati sa tobom, ali cu te zamoliti da kada sledeci put budes imao potrebu da se istreses na nekome, to ne budem ja.
 
Odgovor na temu

SAFF
Computer Art

Član broj: 49147
Poruke: 161
91.150.108.*

Jabber: esad@dr.com
Sajt: www.esad.tk


Profil

icon Re: Definisanje privilegija korisnicima programa15.05.2007. u 20:30 - pre 208 meseci
Radi se o istoj stvari koju zelim odraditi mada puno trivijalnije nego je ovde pomenutno...

Meni konkretno treba kod u kome ce sql (select * from korisnik where username = username and password = password) obaviti funkciju bool tipa ima = true nema =false a ukoliko je true onda proveriti da li je korisnik administrator yes/no.
U zavisnosti od toga cu neke funkcije staviti na visible true/false...


SAFF
Alles ist in ordnung...
http://www.esad.tk
 
Odgovor na temu

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.dialup.neobee.net.



Profil

icon Re: Definisanje privilegija korisnicima programa16.05.2007. u 16:05 - pre 208 meseci
Pozdrav,

dosta toga ste rekli korisnog, što može pomoći. Različite su implementacije i kvalitet istih, a spram potrebe svako će pronaći šta mu treba. Želim samo da kažem, po meni, bolja je varijanta raditi zaštitu na nivou baze, a tu zaštitu implementirati kroz program.

Model zaštite koji sam video, na žalost nisam mogao sve detaljno uhvatiti zbog kratkog vremena, je zasnovan na bazi. Konkretnije, postoji baza podataka koja sadrži tabele sa podacima, npr. fakultet, studenti, knjigovodstvo, etc. Zaštita je implementirana tako što je napravljena nova baza samo sa podacima o korisnicima(id,ime,prezime,...), tipu korisnika(id_korisnik,id_tip(admin,referent,etc.)), pravima pristupa(id_tip,id_tabele,etc.), ..., a to je sve propraćeno sa read, write, update, delete. Npr:
Code:

id_tip|id_tabela|R|W|U|D|
  001|98         |1|0|0|0|
  002|98         |1|1|1|0|
  003|98         |1|1|1|1|
... 

Naravno, to je dosta kompleksno, evidentira se svaki korisnik, logovanje, njegov rad, akcije nad tabelama, greške koje su se javile, prati se svaka akcija(pozivanje neke forme, izveštaja, etc.), stvarno jedno rešenje koje zaslužuje svaku pažnju. Sad, na osnovu logovanja, odredi se tip korisnika i dodele mu se prava pristupa nad tabelama. Nisam video kako je to rešeno kroz program, odnosno šta korisnik na osnovu prava pristupa vidu u programu a šta ne, ali pretpostavka da je urađeno nešto slično što ste vi već rekli.

Žao mi je što ne mogu vam dati malo bolju sliku tog modela, ali ako ima neko ko bi to mogao bolje nam svima predstaviti, jer mislim da je jedno rešenje koje zaslužuje pažnju, bio bih veoma zahvalan.

Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Definisanje privilegija korisnicima programa

[ Pregleda: 3442 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.