|
Microsoft Office Access |
|
|
Povećajte sigurnost podatakaNivo:
Zamislite ovu situaciju: u tabelama baze podataka postoje podaci kojima korisnici ne bi trebalo da pristupe direktno, tako da mogu da pročitaju celokupan sadržaj. Umesto toga, u zavisnosti od privilegija, oni će moći da pristupaju samo određenim podacima koristeći forme ili druge Access objekte. S jedne strane ste vi, a sa druge znatiželjni korisnici koji ponešto znaju o Accessu i na svaki način će pokušati da dođu do poverljivih podataka. Kreirali ste radnu grupu (workgroup) i u okviru nje onemogućili kreiranje novih baza podataka. Veštom korisniku je to dovoljno: sve što treba da uradi je da kreira novu bazu podataka koristeći datoteku osnovne radne grupe, zatim da se ponovo priključi definisanoj radnoj grupi i da najzad prenese zaštićene tabele u novu bazu podataka, čime dobija pun pristup podacima. Nijedna od osnovnih grupa (Admins i Users) nema prava da koristi bilo šta drugo osim defisane baze podataka ili baze podataka podeljene na front end i back end. Kada korisniku dodelite dozvolu read nad određenim tabelama i kontrolišete šta može, a šta ne može da radi posredstvom mehanizma bezbednosti na korisničkom nivou, nijedan objekat baze podataka se ne može uvesti u drugu bazu - osim tabela. Kako korisnik ima dozvolu za čitanje, on ujedno ima i dozvolu da pročita dizajn tabele. Nameće se pitanje: kako povećati bezbednost u ovoj situaciji? Ukratko rečeno: nažalost, teško. Access je tako izgrađen da ne može uvek da odgovori svim scenarijima bezbednosti, pa se u krajnjem slučaju za čuvanje poverljivih informacija preporučuje upotreba jačih DBMS sistema, pravih klijent-server baza podataka. Naravno, takve baze podataka koštaju daleko više nego baza izgrađena u Accessu, pa se na kraju postavlja pitanje celishodnosti. Ipak, ponešto možete da učinite. U okviru bezbednosti na nivou korisničkog naloga, ne dodeljujte generičkom korisničkom nalogu read prava nad bilo kojom tabelom. Umesto toga, dodelite privilegiju Run with Owner's Permissions nad upitima koji su bazirani na tabelama. Na ovaj način, skup podataka koje korisnik može da vidi je veoma ograničen. Poseban manevar: preimenujte tabele tako što ćete dodati prefiks USys. Na primer, tabelu pod nazivom tblKlijenti preimenujte u USystblKlijenti i ona će odmah biti proglašena sistemskom. Trik je u tome što su sistemske tabele podrazumevano skrivene, pa će i preimenovana tabela nestati sa spiska podrazumevano dostupnih objekata. Tabelu je ipak moguće videti kada u meniju opcija uključite prikaz sistemskih objekata (Show System Objects), ali korisnici koji tek ponešto znaju, obično ne petljaju sa sistemskim tabelama. Da biste dodatno otežali znatiželjnim korisnicima da lako pronađu podatke čak i kada gledaju sistemske table, dodatno promenite ime tabele u nešto manje prepoznatljivo, poput USysKli, USysK_0907 ili neko drugo koje će samo vama biti prepoznatljivo. Imajući na umu težinu privatnosti podataka, programski možete s vremena na vreme kreirati dodatne "neispravne", zapravo lažne zapise, kombinujući podatke iz polja raznih zapisa. Možete ići čak i dotle da napravite kompletne "fantomske" table sa neispravnim podacima. Tabele s pojedinim lažnim zapisima filtrirajte pomoću VBA programa, a front end prevedite u MDE oblik kako biste sakrili program. Sklonite izvor podataka iz forme i kontrolišite ovu osobinu događajem OnOpen, gde ćete koristiti upit umesto same tabele. Izvor podataka može biti i tabela druge baze, bez potrebe da tabelu zaista povezujete sa bazom u kojoj radite. Dodatno, određene tabele možete izdvojiti iz back end dela i postaviti ih drugu bazu podataka koja će se nalaziti u skrivenom, deljenom mrežnom folderu. Bazu koja sadrži podatke možete preimenovati u bilo koji drugi naziv, uključujući i izmenu ekstenzije. Npr. umesto lako prepoznatljivog naziva baza_klijenata.mdb, preimenujte bazu u User.sys. Ako korisnik ipak pokuša da otvori ovu datoteku (što je zaista retko), moći će da vidi sadržaj pomoću programa Notepad, ali ne i smislene podatke. Redovne kopije se podrazumevaju, jer u slučaju da korisnik izmeni i snimi tu datoteku, ona više neće biti upotrebljiva. Uređivanje podataka druge baze podataka bez povezivanja tabela je moguće čak i kad baza zahteva lozinku za pristup podacima. Ujedno, SQL string može poslužiti kao izvor podataka forme. Da biste to učinili, postavite za izvor podataka forme sledeći SQL iskaz: SELECT * FROM tblTabela IN '' [;DATABASE=C:\Putanja\db.mdb;PWD=lozinka] ORDER BY fldPolje; Ovaj iskaz ne morate sačuvati uz formu, već ga možete kontrolisati na događaju OnOpen forme dodeljivanjem SQL stringa osobini RecordSource. Dodatno, postavite osobine Shortcut Menu: No i Allow Design Changes: Design View Only. Sačuvajte formu, prevedite bazu u MDE format i distribuirajte je korisniku u tom obliku. Prema trenutno dostupnim informacija, odnosno beta verziji Officea 12, opširan (i komplikovan) sistem bezbednosti poznat pod nazivom User Level Security neće biti više podržan od nove Jet mašine (sa novim imenom Ace Engine). Drugim rečima, zaštita će biti onoliko dobra koliko korisnik zna sam da je isprogramira. Verzije 2000-2003 će raditi kao i ranije, ali ako bazu konvertujete u novi ACCDB format, Workgroup Security više neće raditi. Dobra vest je da će korisnici morati da imaju administratorski nalog sa lozinkom kako bi mogli da konvertuju bazu u ACCDB format,inače će morati da koriste stari MDB format koji ćete održavati kao i prethodnim verzijama Accessa.
|
|
Vrh stranice Prethodna stranica Naslovna strana Mapa sajta Pretraga |
| AFORIZAM ZA DANAS | OVIH DANA SLUŠAMO... |
| Copyright © Praktikum na Webu, 2000-2011; Valinor Design; sva prava pridržana. |