Dodatek C Bezpieczeñstwo Czêœæ VII: Dodatki Dodatek C: Bezpieczeñstwo Je eli tworzysz bazê danych na w³asne potrzeby, nie musisz w aden sposób ograniczaæ do niej dostêpu, co oznacza, e informacje przedstawione w tym rozdziale nie bêd¹ ci potrzebne. Je eli jednak projektujesz bazy danych, które bêd¹ u ywane przez innych u ytkowników (na przyk³ad w jakiejœ firmie), czêsto zachodzi potrzeba ograniczenia dostêpu pewnym u ytkownikom aplikacji lub ograniczenia dostêpu do okreœlonych jej sk³adników. Na przyk³ad trzeba zabezpieczyæ poufne dane o wysokoœci wyp³at pracowników, aby mia³y do nich dostêp tylko osoby zatrudnione w dziale wynagrodzeñ, lub uniemo liwiæ modyfikowanie projektów formularzy i raportów u ytkownikom z innych dzia³ów. Microsoft Access oferuje wiele sposobów ograniczenia dostêpu do sk³adników bazy danych. Niektóre z nich s¹ proste i szybkie w u yciu; inne bardziej z³o one, a ich wdro enie wymaga wykonania szeregu czynnoœci. W tym dodatku przedstawiono wybrane sposoby zabezpieczania baz danych Accessa (lub niektórych ich sk³adników) przed niepowo³anym dostêpem lub modyfikacj¹. Ukrywanie obiektów bazy danych Jednym z najprostszych sposobów ograniczenia dostêpu do okreœlonych obiektów baz danych jest ich ukrycie. Na przyk³ad aby ukryæ przed u ytkownikiem tabelê odnoœników (i tym samym uniemo liwiæ jej modyfikacjê), wystarczy prawym przyciskiem myszy klikn¹æ jej nazwê w oknie bazy danych, a nastêpnie wybraæ polecenie W³aœciwoœci. Gdy pojawi siê arkusz w³aœciwoœci, nale y zaznaczyæ pole wyboru Ukryty, tak jak zosta³o to przedstawione na rysunku C.1. Rysunek C.1. Je eli nie chcesz, aby u ytkownicy widzieli tabelê, powinieneœ j¹ ukryæ
828 Czêœæ VII: Dodatki OSTRZE ENIE Mo e ci siê wydawaæ, e aby ukryæ jakiœ obiekt bazy danych, wystarczy go zaznaczyæ w oknie bazy danych, a nastêpnie w menu Okno wybraæ polecenie Ukryj. Jednak ta operacja powoduje ukrycie ca³ego okna bazy danych, a nie wybranego obiektu. Jak widaæ, ukrycie obiektu przed u ytkownikiem jest bardzo proste. (Obiekt ten w dalszym ci¹gu bêdzie dostêpny dla korzystaj¹cych z niego innych sk³adników bazy danych oraz w kodzie VBA). Jednak bardziej doœwiadczony u ytkownik nie bêdzie mia³ problemu z odszukaniem ukrytego obiektu. Wystarczy, je eli w oknie dialogowym Opcje na karcie Widok zaznaczy opcjê Ukryte obiekty. Spowoduje to wyœwietlenie ukrytych obiektów w oknie bazy danych (chocia ich ikony bêd¹ rozjaœnione). Je- eli nastêpnie u ytkownik przejdzie do arkusza w³aœciwoœci tego obiektu i usunie zaznaczenie w polu Ukryty, obiekt stanie siê ponownie ca³kowicie dostêpny. Jak widaæ, ponowne wyœwietlenie ukrytych obiektów nie przysparza adnych trudnoœci, dlatego metody tej nie mo na traktowaæ jako rzeczywistego zabezpieczenie przed przegl¹daniem lub modyfikowaniem obiektów. Korzysta siê z niej g³ównie wtedy, gdy chcemy ukryæ tabele systemowe, niedokoñczone formularze lub inne obiekty bazy danych, które mog¹ wprawiaæ u ytkownika w zak³opotanie lub które po prostu zaœmiecaj¹ okno bazy danych. Szyfrowanie Innym sposobem zabezpieczania bazy danych jest jej zaszyfrowanie. Dziêki temu bêdzie ona nieczytelna podczas próby przegl¹dania za pomoc¹ jakiegoœ programu narzêdziowego lub edytora tekstu. Aby zaszyfrowaæ bazê danych, musisz byæ jej w³aœcicielem lub (je eli baza danych jest zabezpieczona) cz³onkiem grupy administratorów w pliku z informacjami o grupie roboczej, wykorzystywanym do zabezpieczenia tej bazy. Ponadto baza danych musi byæ otwarta w trybie wy³¹cznym. Je eli mo esz spe³niæ wymienione warunki, wybierz polecenie Narzêdzia Zabezpieczenia Zaszyfruj/Odszyfruj bazê danych (zobacz rysunek C.2). Na ekranie pojawi siê okno Zaszyfruj bazê danych jako, w którym mo esz podaæ nazwê i œcie kê dostêpu do zaszyfrowanej bazy. Po klikniêciu przycisku Zapisz, na pasku stanu pojawi siê pasek postêpu, informuj¹cy o przebiegu procesu tworzenia zaszyfrowanej bazy danych. (Oryginalna, niezaszyfrowana baza danych pozostanie niezmieniona).
Dodatek C: Bezpieczeñstwo 829 Rysunek C.2. Szyfrowanie zapewnia bazie danych znacznie wiêksze bezpieczeñstwo ni ukrywanie obiektów Trzeba pamiêtaæ, e u ytkownik mo e przegl¹daæ obiekty w zaszyfrowanej bazie danych, a nawet przechodziæ do widoku projektu i wyœwietlaæ kod. Z tego wzglêdu szyfrowanie bazy danych nie jest sposobem na zabezpieczenie jej obiektów przed przegl¹daniem lub modyfikacjami. Jednak uniemo liwia przegl¹danie bazy danych za pomoc¹ jakiegoœ programu narzêdziowego lub edytora tekstu i tym samym jest dobrym zabezpieczeniem podczas elektronicznej transmisji danych lub gdy s¹ one gromadzone na ró nych noœnikach. Zabezpieczenie has³em kodu VBA Je eli twoim g³ównym celem jest zabezpieczenie przed modyfikacjami oraz przegl¹daniem twojego kodu VBA (na przyk³ad chcesz uniemo liwiæ zmiany w funkcjonowaniu bazy danych lub chroniæ umieszczone w niej oryginalne rozwi¹zania autorskie, poniewa jest ona produktem komercyjnym), mo esz u yæ has³a zabezpieczaj¹cego tylko kod. Aby utworzyæ has³o chroni¹ce kod VBA, wykonaj poni sze czynnoœci: 1. PrzejdŸ do edytora Visual Basica, naciskaj¹c klawisze [Alt+F11] lub wybieraj¹c polecenie Narzêdzia Makro Edytor Visual Basica. 2. Wybierz polecenie Tools, NazwaBazyDanych Properties, aby otworzyæ okno dialogowe Project Properties. 3. PrzejdŸ do karty Protection, zaznacz pole wyboru Lock project for viewing i wpisz has³o w obu polach tekstowych (rysunek C.3).
830 Czêœæ VII: Dodatki Rysunek C.3. Ustawianie has³a zabezpieczaj¹cego kod VBA bazy danych Po zamkniêciu i ponownym otwarciu bazy danych, gdy spróbujesz wyœwietliæ zawartoœæ jakiegoœ modu³u, pojawi siê okno dialogowe z ¹daniem podania has³a. Zapisywanie w postaci pliku MDE Jeszcze bezpieczniejsz¹ metod¹ uniemo liwienia u ytkownikowi dostêpu do kodu VBA jest zapisanie bazy danych jako pliku MDE. Technika ta oznacza kompilacjê wszystkich modu³ów (a tym samym usuniêcie podlegaj¹cego edycji kodu) i skompaktowanie bazy danych do postaci pliku MDE. Aby zapisaæ bazê danych jako plik MDE, wybierz polecenie Narzêdzia Narzêdzia bazy danych Utwórz plik MDE (zobacz rysunek C.4). Rysunek C.4. Zapisanie bazy danych jako pliku MDE jest jeszcze bezpieczniejsz¹ metod¹ ochrony kodu VBA Pojawi siê okno dialogowe Zapisz jako plik MDE, w którym nale y okreœliæ nazwê i lokalizacjê tworzonego pliku.
Dodatek C: Bezpieczeñstwo 831 Plik MDE jest mniejszy ni plik MDA i pozwala uzyskaæ lepsz¹ wydajnoœæ. Plik MDE ma nastêpuj¹ce cechy, które odró niaj¹ go od pliku MDA: Nie mo na w nim u ywaæ widoku projektu, aby modyfikowaæ formularze, raporty oraz modu³y. Nie mo na w nim dodawaæ, usuwaæ lub zmieniaæ odwo³añ do bibliotek obiektowych lub baz danych. Nie mo na w nim zmieniaæ kodu (pliki MDE nie zawieraj¹ kodu Ÿród³owego). Nie mo na w nim wykonywaæ operacji importowania lub eksportowania formularzy, raportów i modu³ów. OSTRZE ENIE Konwersja pliku MDA na MDE ma charakter jednokierunkowy. Je eli utracisz oryginalny plik MDA, nie bêdziesz móg³ go odtworzyæ w oparciu o plik MDE. Opcje uruchamiania Okno dialogowe Uruchamianie (wyœwietlane po wybraniu polecenia Uruchomienie z menu Narzêdzia) ma kilka opcji, pozwalaj¹cych ograniczyæ dostêp u ytkowników do ró nych elementów bazy danych. S¹ to pola wyboru: Wyœwietl okno bazy danych, Zezwalaj na pe³ne menu i U yj specjalnych klawiszy programu Access (rysunek C.5). Je eli usuniesz zaznaczenia we wszystkich wymienionych polach wyboru, u ytkownik nie bêdzie widzia³ okna bazy danych i nie bêdzie go móg³ odzyskaæ za pomoc¹ klawisza [F11] lub polecenia Odkryj z menu Okno. Oczywiœcie w takim przypadku konieczne jest utworzenie formularza pe³ni¹cego rolê menu g³ównego, którego nazwê nale y podaæ w polu Wyœwietl formularz/stronê; w przeciwnym razie, pomimo otwarcia bazy danych, okno programu Access pozostanie puste. Rysunek C.5. Za pomoc¹ okna dialogowego Uruchamianie mo na wy³¹czyæ dostêp do okna bazy danych Zastosowanie tej opcji jest dobrym sposobem ograniczenia mo liwoœci pracy z baz¹ danych do menu i innych elementów interfejsu, zaprojektowanych specjalnie w tym celu. Jednak rozwi¹zanie te nie zabezpiecza ca³kowicie dostêpu do okna bazy danych u ytkownicy mog¹ pomin¹æ to ograniczenie, przytrzymuj¹c wciœniêty klawisz [Shift] w momencie otwierania bazy danych.
832 Czêœæ VII: Dodatki Has³o bazy danych Za³ó my, e chcesz, aby dostêp do bazy danych mia³a jedynie grupa osób (na przyk³ad tylko twoi wspó³pracownicy). Aby to osi¹gn¹æ, mo esz zdefiniowaæ has³o, którego wprowadzenie bêdzie wymagane przed otwarciem bazy danych. U ytkownicy próbuj¹cy otworzyæ bazê danych bêd¹ musieli je wprowadziæ w oknie dialogowym Wymagane has³o. Bazê danych bêd¹ mogli otworzyæ tylko u ytkownicy znaj¹cy has³o. Po wprowadzeniu has³a i otwarciu bazy danych u ytkownik bêdzie móg³ swobodnie korzystaæ z wszystkich obiektów bazy danych (chyba e dodatkowo zastosowano inne mechanizmy zabezpieczaj¹ce przyp. t³um.), tak wiêc omawiana metoda jest szczególnie przydatna, je eli chcemy zabezpieczyæ bazê danych przed niepowo³anym dostêpem osób, korzystaj¹cych z komputera, na którym jest ona zainstalowana. (Pod warunkiem, e ku pamiêci nie zanotujesz sobie has³a na karteczce przyklejonej do monitora). Aby ustawiæ has³o bazy danych, wykonaj nastêpuj¹ce czynnoœci: 1. Z menu Plik wybierz polecenie Otwórz. 2. W oknie dialogowym Otwórz zaznacz bazê danych, któr¹ chcesz zabezpieczyæ has³em, kliknij strza³kê obok przycisków Otwórz i wybierz opcjê Otwórz z wy³¹cznoœci¹ (rysunek C.6). Rysunek C.6. Otwórz bazê danych z wy³¹cznoœci¹ 3. Z menu Narzêdzia Zabezpieczenia wybierz polecenie Ustaw has³o bazy danych. 4. Gdy pojawi siê okno dialogowe Ustawianie has³a bazy danych (rysunek C.7), dwukrotnie wpisz to samo has³o i kliknij przycisk OK.
Dodatek C: Bezpieczeñstwo 833 Rysunek C.7. Dwukrotnie wpisz to samo has³o Przy ponownym otwieraniu bazy danych pojawi siê okno dialogowe Wymagane has³o. WSKAZÓWKA Aby usun¹æ has³o bazy danych, otwórz j¹ najpierw w trybie wy³¹cznym, a nastêpnie z menu Narzêdzia Zabezpieczenia wybierz polecenie Cofnij has³o bazy danych. Zabezpieczenia na poziomie u ytkownika Najbardziej zaawansowanym typem zabezpieczeñ (i jak nale y podejrzewaæ, najbardziej skomplikowanym i trudnym do wdro enia) s¹ zabezpieczenia na poziomie u ytkownika. Implementuje siê je za pomoc¹ mechanizmu grupy roboczej (grupy u ytkowników wspó³u ytkuj¹cych te same dane). Zabezpieczenia na poziomie u ytkownika pozwalaj¹ na przydzielanie ró nych poziomów uprawnieñ do okreœlonych obiektów bazy danych ró nym grupom u ytkowników. Z pewnoœci¹ jest to bardziej elastyczna metoda ograniczenia dostêpu ni tworzenie has³a bazy danych, którego znajomoœæ daje uprawnienia na zasadzie wszystko albo nic. Definiowanie zabezpieczeñ na poziomie u ytkownika jest z³o one, jednak proces tworzenia takiego schematu mo e u³atwiæ kreator zabezpieczeñ na poziomie u ytkownika. (Je eli planujesz utworzyæ niestandardowy schemat zabezpieczeñ, skorzystaj z innych opcji w podmenu Zabezpieczenia). Aby zdefiniowaæ zabezpieczenia, korzystaj¹c z kreatora zabezpieczeñ na poziomie u ytkownika, wykonaj nastêpuj¹ce czynnoœci: 1. Otwórz zabezpieczan¹ bazê danych w trybie wielodostêpu (jest to tryb domyœlny). 2. Z menu Narzêdzia Zabezpieczenia wybierz polecenie Kreator zabezpieczeñ na poziomie u ytkownika. Przy³¹czanie siê do grupy Admin Je eli zobaczysz komunikat, przedstawiony na rysunku C.8, zanim uruchomisz kreator, bêdziesz musia³ wykonaæ kilka czynnoœci przygotowawczych w podmenu Zabezpieczenia. Rysunek C.8. Je eli podczas pierwszego uruchomienia kreatora zabezpieczeñ na poziomie u ytkownika pojawi siê ten komunikat o b³êdzie, bêdziesz musia³ wykonaæ kilka dodatkowych czynnoœci
834 Czêœæ VII: Dodatki Zwykle wystarczy z menu Narzêdzia Zabezpieczenia wybraæ polecenie Administrator grupy roboczej, a nastêpnie klikn¹æ przycisk Do³¹cz w oknie dialogowym Administrator grup roboczych (rysunek C.9). Rysunek C.9. Do³¹czanie do domyœlnej grupy roboczej Pojawi siê okno Plik informacyjny grupy roboczej (rysunek C.10). Kliknij przycisk OK, aby do³¹czyæ siê do domyœlnej grupy roboczej, lub przycisk Przegl¹daj, aby odszukaæ inn¹ grupê robocz¹. Rysunek C.10. Wybierz grupê robocz¹, do której chcesz siê do³¹czyæ Kliknij przycisk OK w oknie informuj¹cym o pomyœlnym przeprowadzeniu operacji, a nastêpnie kolejny przycisk OK w oknie dialogowym Administrator grup roboczych. Teraz mo esz korzystaæ z kreatora zabezpieczeñ na poziomie u ytkownika. Pojawi siê pierwsze okno kreatora, przedstawione na rysunku C.11. Rysunek C.11. Pierwszy ekran kreatora zabezpieczeñ na poziomie u ytkownika
Dodatek C: Bezpieczeñstwo 835 WSKAZÓWKA Aby uzyskaæ wiêcej informacji na temat zabezpieczeñ na poziomie u ytkownika, kliknij przycisk Pomoc w tym oknie kreatora. 3. Kliknij przycisk Dalej, aby utworzyæ plik informacyjny nowej grupy roboczej. 4. Podaj nazwê i lokalizacjê nowej grupy roboczej, jej identyfikator (WID) oraz twoje nazwisko i nazwê firmy. Ostatnie dwa pola s¹ opcjonalne (rysunek C.12). W grupie opcji u do³u ekranu wybierz miêdzy u yciem nowej grupy roboczej jako domyœlnej lub utworzeniem skrótu otwieraj¹cego zabezpieczon¹ bazê danych (opcja zalecana). Kliknij przycisk Dalej. Rysunek C.12. Okreœl ró ne parametry pliku informacyjnego nowej grupy roboczej 5. Okreœl, które obiekty bêd¹ zabezpieczone (rysunek C.13). Domyœlnie zaznaczone s¹ wszystkie obiekty bazy danych, co zwykle nie jest rozwi¹zaniem, do którego d¹ ymy. Kliknij przycisk Dalej. Rysunek C.13. Wybierz obiekty bazy danych do zabezpieczenia OSTRZE ENIE Je eli stosowa³eœ zabezpieczenia na poziomie u ytkownika w Accessie 97 lub wczeœniejszym, byæ mo e pamiêtasz, e mo na w nim by³o zabezpieczaæ modu³y kodu. Pocz¹wszy od Accessa 2000 mechanizm zabezpieczania modu³ów kodu na poziomie u ytkownika jest niedostêpny; zamiast tego kod VBA nale y zabezpieczyæ has³em lub zapisaæ bazê danych w postaci pliku MDE.
836 Czêœæ VII: Dodatki 6. Jak widaæ na rysunku C.14, mo na wybieraæ ró ne kombinacje grup u ytkowników i przypisywaæ im ustawione wczeœniej uprawnienia. Kliknij przycisk Dalej. Rysunek C.14. Wybierz standardowe grupy u ytkowników, które znajd¹ siê w pliku informacyjnym grupy roboczej 7. Mo esz przypisaæ odpowiednie uprawnienia grupie U ytkownicy (rysunek C.15). Nale ¹ do niej wszyscy u ytkownicy. Jednak zwykle lepiej pozostawiæ domyœln¹ wartoœæ tej opcji (Nie, grupa U ytkownicy nie powinna mieæ adnych uprawnieñ), aby uzyskaæ pewnoœæ, e uprawnienia bêd¹ przydzielane tylko w oparciu o przynale noœæ do okreœlonych grup. Kliknij przycisk Dalej. Rysunek C.15. Okreœl uprawnienia grupy U ytkownicy 8. Dodaj u ytkowników do pliku grupy roboczej, jak pokazano to na rysunku C.16. (Korzystaj¹c z podmenu Zabezpieczenia, mo esz póÿniej dodaæ do niej kolejnych u ytkowników). Kliknij przycisk Dalej.
Dodatek C: Bezpieczeñstwo 837 Rysunek C.16. Dodaj u ytkownika do pliku informacyjnego grupy roboczej 9. Przypisz u ytkowników grupom lub zaznacz grupê i przypisz jej u ytkowników (rysunek C.17). Kliknij przycisk Dalej. Rysunek C.17. Przypisz u ytkowników grupom 10. Okreœl nazwê zapasowej (niezabezpieczonej) bazy danych (rysunek C.18). Je eli chcesz, mo esz zaznaczyæ widoczne u do³u okna pole wyboru, co spowoduje wyœwietlenie pomocy na temat dostosowywania zabezpieczeñ. Kliknij przycisk Zakoñcz. Rysunek C.18. Zapisz zapasow¹ (niezabezpieczon¹) bazê danych
838 Czêœæ VII: Dodatki Na ekranie pojawi siê pasek obrazuj¹cy postêp procesu wprowadzania zabezpieczeñ do obiektów bazy danych. Gdy kreator zakoñczy dzia³anie, nast¹pi wyœwietlenie podgl¹du wydruku raportu kreatora zabezpieczeñ. Rysunek C.19 przedstawia fragment tego raportu. Rysunek C.19. Fragment raportu kreatora zabezpieczeñ w jednym kroku Jak wynika z informacji zamieszczonej w nag³ówku raportu, nale y go wydrukowaæ lub wyeksportowaæ do pliku (klikaj¹c na pasku narzêdzi przycisk Opublikuj za pomoc¹ programu Microsoft Word). W ten sposób zapamiêtasz ustawienia zastosowane do tworzenia pliku informacyjnego grupy roboczej i zabezpieczonej bazy danych. Niezale nie od tego, czy opublikujesz raport w edytorze Word, w chwili jego zamykania pojawi siê komunikat z pytaniem, czy zapisaæ raport w formie migawki. Je eli klikniesz przycisk Tak, raport zostanie zapisany w pliku migawki (.snp). Po zamkniêciu pliku migawki, pojawi siê komunikat informuj¹cy o zaszyfrowaniu bazy danych. Musisz wtedy zamkn¹æ Accessa i ponownie go uruchomiæ, by móc korzystaæ z zabezpieczonej bazy danych. Skrót zdefiniowany w czwartym punkcie przedstawionej przed chwil¹ procedury pojawi siê na pulpicie. Je eli otworzysz arkusz w³aœciwoœci skrótu, zobaczysz, e w jego w³aœciwoœci Obiekt docelowy znajduje siê kod podobny do zamieszczonego poni ej. (Faktyczna œcie ka dostêpu zale y od lokalizacji pakietu Office XP, bazy danych oraz pliku grupy roboczej). "D:\Program Files\Microsoft Office\Office10\MSACCESS.EXE" "C:\Moje dokumenty\tlumaczenia\rm\acc2002_io\bazy\ Rzemios³o 2002.mdb" /WRKGRP "C:\Moje dokumenty\tlumaczenia\rm\acc2002_io\bazy\zabezpieczony.mdw" To dosyæ d³ugie wyra enie wskazuje plik wykonywalny Accessa, zabezpieczon¹ bazê danych oraz wykorzystywany przez ni¹ plik informacyjny grupy roboczej. Gdy baza danych zostanie otwarta za pomoc¹ tego skrótu, pojawi siê okno dialogowe Logowanie (rysunek C.20). Gdy u ytkownik wprowadzi swoj¹ nazwê i has³o, nast¹pi otwarcie zabezpieczonej bazy danych, a u ytkownik uzyska taki dostêp do jej obiektów, jaki zosta³ nadany grupie (lub grupom), do której nale y. Rysunek C.20. Okno dialogowe Logowanie wyœwietlane podczas otwierania zabezpieczonej bazy danych