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

Evidencija logovanja i prava pristupa???

[es] :: Pascal / Delphi / Kylix :: Evidencija logovanja i prava pristupa???

[ Pregleda: 3270 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

inherited
Novi Sad

Član broj: 95516
Poruke: 219
*.neobee.net.



Profil

icon Evidencija logovanja i prava pristupa???03.08.2006. u 01:57 - pre 215 meseci
Na osnovu teme: http://www.elitesecurity.org/t195278-imam-jedan-problem, sam skontao kako
odraditi logovanje u program na osnovu baze podataka. Mogu reci, da lepo funkcionise.

Interesantno bi mi bilo odraditi i pravo pristupa (administrator,korisnik). Da korisnik ima
odredjena prava, a administrator sva. Napravio sam tabelu Korisnici, na osnovu koje se
loguje u program, sa atributima(kolonama): Naziv_Korisnika, Sifra_Korisnika.
Pretpostavljam da bi mi sad trebala neka tabela u kojoj ce se za odredjenog korisnika
dodeliti odredjena prava (Naziv_Korisnika,...,???).
Naziv_Korisnika za obe tabele je primarni kljuc.

Bio bih vam zahvalan da me malo uvedete u to...
 
Odgovor na temu

Whois

Član broj: 92214
Poruke: 37
*.panet.co.yu.



Profil

icon Re: Evidencija logovanja i prava pristupa???03.08.2006. u 02:42 - pre 215 meseci
Ne pravis drugu tabelu vec u toj prvoj gde su polja naziv i sifra dodas polje Pravo koje ce da odredjuje sta taj korisnik moze da radi. Naravno prilikom logovanja nekog korisnika, ti u neku promenjljivu tipa integer izvadis i prava pristupa za tog korisnika koji se logovao.

Tabelu mozes da kreiras kako sam ti predlozio sa samo jednim poljem Pravo, a mogu da budu i vise polja. Tada bi svako polje odredjivalo nekakvo pravo (pisanje, citanje, brisanje....) i u zavisnosti da li je 1 ili 0, ti dopustas korisniku neku akciju.

Sada nesto malo o prvom nacinu (kada imas samo jedno polje za prava i tu smestas sve privilegije). Svaki bit je jedna privilegija. Npr. 1 bit - pisanje, 2 - citanje, 3-brisanje, 4-admin ....

napravis ovako:
Code:

const 
CanRead=1;
CanWrite=2;
CanDelete=4;
Admin=8;

u programu ide varijabla:
var
 privilegija: integer;

setovanje prava:
 privilegija:=canRead+CanWrite+Admin;
 ...ovde ide zapis u bazu...

ispitivanje prava (pretpostavka je da su vec sva prava u varijabli privilegija koja je postavljena prilikom logina):
  if (privilegija and Admin)<>0 then  .... da li je admin
  if (privilegija and CanDelete)<>0 then .... da li moze da brise 



 
Odgovor na temu

inherited
Novi Sad

Član broj: 95516
Poruke: 219
*.neobee.net.



Profil

icon Re: Evidencija logovanja i prava pristupa???03.08.2006. u 10:20 - pre 215 meseci
Dobro, pomalo sam skontao o cemu se radi, ali ne dovoljno.
Za pocetak:

1) ako u tabelu Korisnici dodam atribut(kolonu) Prava, privilegije cu upisivati kao
1,2,...,n?

2) kako onemoguciti korisniku da izvrsava odredjene privilegije?

Ako bi neko hteo da odradimo jedan mali primer,da konkretno prodjem kroz to, bio bih veoma
zahvalan. Recimo da imamo korisnika i administratora, stim da administrator ima sva prava a
korisnik samo odredjena.
 
Odgovor na temu

Whois

Član broj: 92214
Poruke: 37
*.panet.co.yu.



Profil

icon Re: Evidencija logovanja i prava pristupa???03.08.2006. u 14:47 - pre 215 meseci
1. Da upisujes kao obican integer

2. Ako imas na formi neko polje koje ne treba da vidi (ili da edituje) korisnik koji nije admin, onda stavis:
edit1.visible:= (prvilegija and Admin) <>0 ... tako ce polje ostati sakriveno ako nije admin u pitanju.

Ako neko nema pravo brisanja fajlova, onda stavis u proceduri za brisanje

...
if (priviledije and CanDelete)<>0 then
DeleteFile(bla bla)
else
showmessage('Izvini sinak, ali nemas ta prava');

ili jednostavno sakrijes button za delete
button1.visible := (privilegije and CanDelete)<>0

a mozes i da napravis svojih 4,5 funkcija koje ce da vrate true ako korisnik ima prava.

function MozeBrisati: Boolean;
begin
Result := (privilegije and CanDelete) <>0;
end;
...i tako dalje


a zatim ides na

button1.visible := MozeBrisati;
 
Odgovor na temu

morlic
Milos Orlic
Beograd

Član broj: 6081
Poruke: 735
*.dynamic.sbb.co.yu.



+1 Profil

icon Re: Evidencija logovanja i prava pristupa???03.08.2006. u 15:34 - pre 215 meseci
Naravno sve to pada u vodu ako korisnik zaobidje program i loguje se recimo preko nekog alata direktno na bazu i dodeli sebi prava kakva god zeli, ili da jednostavno direktno izmeni odredjene podatke. Ako je za ozbiljno resenje treba misliti o tome.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Evidencija logovanja i prava pristupa???

[ Pregleda: 3270 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

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