Oracle9i. Podręcznik administratora baz danych
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Oracle9i. Podręcznik administratora baz danych

  • 1,426 views
Uploaded on

Jak sprawić, aby najważniejsze firmowe systemy internetowe i e-biznesowe były wszechstronne, bezpieczne i łatwo dostępne? Wydana przez Helion, a pierwotnie przez wydawnictwo OraclePress książka......

Jak sprawić, aby najważniejsze firmowe systemy internetowe i e-biznesowe były wszechstronne, bezpieczne i łatwo dostępne? Wydana przez Helion, a pierwotnie przez wydawnictwo OraclePress książka "Oracle9i. Podręcznik administratora baz danych" odpowiada na te pytania, wyjaśniając, jak przygotować i obsługiwać rozbudowaną i intensywnie wykorzystywaną bazę danych oraz jak wykorzystać w pełni nowe narzędzia i możliwości, których dostarcza Oracle9i.

Kevin Looney i Marie Thieriault, dwoje znakomitych ekspertów w dziedzinie Oracle, opisują tutaj podstawy działania systemu i dostarczają licznych, zaczerpniętych z życia przykładów oraz prezentują wiele użytecznych technik ułatwiających obsługę systemu Oracle. Książką ta jest niezbędną pozycją w bibliotece każdego administratora baz danych Oracle.

Wewnątrz między innymi:

* Tworzenie i konfigurowanie bazy danych z wykorzystaniem narzędzia Database Configuration Assistant systemu Oracle9i
* Monitorowanie i strojenie pamięci, wykorzystania plików, transakcji oraz zapytań
* Implementowanie w systemie segmentów wycofania lub automatycznego zarządzania wycofywanymi danymi wprowadzonego w Oracle9i
* Sposoby przenoszenia aplikacji oraz zmieniania otwartych tabel bazy danych
* Diagnozowanie i optymalizacja działania systemu z pomocą pakietu STATSPACK
* Implementowanie jak najlepszych procedur bezpieczeństwa i obserwacja bazy danych
* Automatyzacja procedur tworzenia rezerwowych kopii korzystając z programu RMAN
* Wykorzystanie partycjonowania do radzenia sobie z wielkimi bazami danych
* Rozdzielanie zadań i danych pomiędzy różne serwery działające w sieci korzystając z Oracle Net
* Korzystanie z serwera aplikacji Oracle9iAS, który pozwalają na poprawienie wszechstronności i dostępności bazy danych oraz na łatwiejsze jej rozbudowę

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,426
On Slideshare
1,426
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
3
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. IDZ DO PRZYK£ADOWY ROZDZIA£ SPIS TRE CI Oracle 9i. Podrêcznik administratora baz danych KATALOG KSI¥¯EK Autorzy: Kevin Looney, Marlene Theriault KATALOG ONLINE T³umaczenie: Bart³omiej Garbacz, S³awomir Dzieniszewski ISBN: 83-7361-063-4 ZAMÓW DRUKOWANY KATALOG Tytu³ orygina³u: Oracle9i DBA Handbook Format: B5, stron: 1016 TWÓJ KOSZYK Jak sprawiæ, aby najwa¿niejsze firmowe systemy internetowe i e-biznesowe by³y DODAJ DO KOSZYKA wszechstronne, bezpieczne i ³atwo dostêpne? Wydana przez Helion, a pierwotnie przez wydawnictwo OraclePress ksi¹¿ka „Oracle9i. Podrêcznik administratora baz danych” odpowiada na te pytania, wyja niaj¹c, jak przygotowaæ i obs³ugiwaæ rozbudowan¹ CENNIK I INFORMACJE i intensywnie wykorzystywan¹ bazê danych oraz jak wykorzystaæ w pe³ni nowe narzêdzia i mo¿liwo ci, których dostarcza Oracle9i. ZAMÓW INFORMACJE Kevin Looney i Marie Thieriault, dwoje znakomitych ekspertów w dziedzinie Oracle, O NOWO CIACH opisuj¹ tutaj podstawy dzia³ania systemu i dostarczaj¹ licznych, zaczerpniêtych z ¿ycia przyk³adów oraz prezentuj¹ wiele u¿ytecznych technik u³atwiaj¹cych obs³ugê systemu ZAMÓW CENNIK Oracle. Ksi¹¿k¹ ta jest niezbêdn¹ pozycj¹ w bibliotece ka¿dego administratora baz danych Oracle. CZYTELNIA Wewn¹trz miêdzy innymi: • Tworzenie i konfigurowanie bazy danych z wykorzystaniem narzêdzia Database FRAGMENTY KSI¥¯EK ONLINE Configuration Assistant systemu Oracle9i • Monitorowanie i strojenie pamiêci, wykorzystania plików, transakcji oraz zapytañ • Implementowanie w systemie segmentów wycofania lub automatycznego zarz¹dzania wycofywanymi danymi wprowadzonego w Oracle9i • Sposoby przenoszenia aplikacji oraz zmieniania otwartych tabel bazy danych • Diagnozowanie i optymalizacja dzia³ania systemu z pomoc¹ pakietu STATSPACK • Implementowanie jak najlepszych procedur bezpieczeñstwa i obserwacja bazy danych • Automatyzacja procedur tworzenia rezerwowych kopii korzystaj¹c z programu RMAN • Wykorzystanie partycjonowania do radzenia sobie z wielkimi bazami danych • Rozdzielanie zadañ i danych pomiêdzy ró¿ne serwery dzia³aj¹ce w sieci Wydawnictwo Helion korzystaj¹c z Oracle Net ul. Chopina 6 44-100 Gliwice • Korzystanie z serwera aplikacji Oracle9iAS, który pozwalaj¹ na poprawienie tel. (32)230-98-63 wszechstronno ci i dostêpno ci bazy danych oraz na ³atwiejsze jej rozbudowê e-mail: helion@helion.pl
  • 2. Spis treści O Autorach............................................................................................15 Wstęp ...................................................................................................17 Część I Architektura bazy danych......................................................19 Rozdział 1. Wprowadzenie do architektury systemu Oracle .......................................21 Bazy danych i instancje ................................................................................................. 22 Bazy danych ........................................................................................................... 22 Inne pliki ................................................................................................................ 23 Mechanizm Oracle Managed Files ............................................................................ 25 Instancje................................................................................................................. 26 Instalacja oprogramowania............................................................................................. 27 Opcje i komponenty instalacji systemu Oracle............................................................ 28 Tworzenie bazy danych ................................................................................................. 30 Korzystanie z narzędzia Oracle Database Configuration Assistant................................ 31 Konfiguracja parametrów inicjalizacji: pamięć ........................................................... 36 Samodzielne tworzenie bazy danych ......................................................................... 47 Procesy drugoplanowe ................................................................................................... 48 Wewnętrzne struktury bazy danych ................................................................................ 52 Tabele, kolumny oraz typy danych............................................................................ 53 Ograniczenia........................................................................................................... 55 Abstrakcyjne typy danych ........................................................................................ 57 Partycje i podpartycje .............................................................................................. 58 U ytkownicy........................................................................................................... 59 Schematy................................................................................................................ 59 Indeksy .................................................................................................................. 60 Klastry ................................................................................................................... 61 Klastry haszowane................................................................................................... 62 Perspektywy ........................................................................................................... 62 Sekwencje .............................................................................................................. 63 Procedury............................................................................................................... 64 Funkcje .................................................................................................................. 64 Pakiety ................................................................................................................... 64 Wyzwalacze............................................................................................................ 65 Synonimy ............................................................................................................... 66 Uprawnienia i role ................................................................................................... 66 Powiązania baz danych ............................................................................................ 67 Segmenty, obszary i bloki ........................................................................................ 68 Segmenty odwołania i wycofania .............................................................................. 69
  • 3. 6 Oracle9i. Podręcznik administratora baz danych Perspektywy materializowane................................................................................... 70 Obszary kontekstowe............................................................................................... 70 Globalny obszar programu (PGA)............................................................................. 70 Archiwizacja i odtwarzanie ...................................................................................... 71 Mo liwości zabezpieczenia systemu.......................................................................... 73 U ycie narzędzia Oracle Enterprise Manager (OEM).................................................. 75 Rozdział 2. Konfiguracja sprzętowa..........................................................................77 Przegląd architektury ..................................................................................................... 77 Autonomiczne hosty...................................................................................................... 78 Autonomiczny host z zestawem dysków.................................................................... 79 Autonomiczny host z opcją powielania dysku ............................................................ 82 Autonomiczny host z wieloma bazami danych ........................................................... 84 Hosty sieciowe.............................................................................................................. 85 Połączone bazy danych............................................................................................ 86 Zdalna modyfikacja danych — zaawansowana opcja replikacji.................................... 88 Konfiguracja Real Application Clusters ..................................................................... 90 Konfiguracje wieloprocesorowe: opcje równoległego przetwarzania zapytań oraz równoległego ładowania danych...................................................................... 92 Aplikacje typu klient-serwer..................................................................................... 93 Architektura trójwarstwowa ..................................................................................... 94 Dostęp poprzez Oracle Enterprise Gateway ............................................................... 95 Rezerwowe bazy danych (typu Standby) ................................................................... 96 Replikowane bazy danych........................................................................................ 97 Dostęp do plików zewnętrznych ............................................................................... 98 Dostęp do tabel zewnętrznych .................................................................................. 99 Rozdział 3. Logiczny układ bazy danych .................................................................101 Produkt końcowy ........................................................................................................ 101 OFA (optymalna elastyczna architektura) ...................................................................... 102 Punkt startowy — przestrzeń tabel SYSTEM........................................................... 102 Oddzielenie segmentów danych — przestrzeń tabel DATA ....................................... 103 Przestrzenie tabel zarządzane lokalnie ..................................................................... 104 Oddzielenie rzadziej u ywanych segmentów danych — przestrzeń tabel DATA_2...... 104 Oddzielenie segmentów indeksowych — przestrzeń tabel INDEXES......................... 105 Oddzielenie mniej u ywanych indeksów — przestrzeń tabel INDEXES_2 ................. 107 Oddzielenie segmentów dla narzędzi — przestrzeń tabel TOOLS .............................. 107 Oddzielenie indeksów dla narzędzi — przestrzeń tabel TOOLS_I.............................. 108 Oddzielenie segmentów wycofania — przestrzeń tabel RBS ..................................... 108 Oddzielenie specjalnych segmentów wycofania — przestrzeń tabel RBS_2 ................ 109 U ywanie przestrzeni odwołania............................................................................. 109 Oddzielenie segmentów tymczasowych — przestrzeń tabel TEMP ............................ 110 Oddzielenie specyficznych segmentów tymczasowych — przestrzeń tabel TEMP_USER......................................................................... 111 Oddzielenie u ytkowników — przestrzeń tabel USERS ............................................ 112 Dodatkowe typy przestrzeni tabel ........................................................................... 112 Zaawansowane typy przestrzeni tabel...................................................................... 113 Logiczny podział bazy danych a jej funkcjonalność ....................................................... 114 Rozwiązania ............................................................................................................... 115 Rozdział 4. Fizyczny układ bazy danych..................................................................119 Fizyczny układ plików bazy danych.............................................................................. 119 Rywalizacja operacji wejścia-wyjścia o pliki danych ................................................ 120 Wąskie gardła dla operacji wejścia-wyjścia we wszystkich plikach bazy danych ......... 123 Współbie ne operacje wejścia-wyjścia procesów drugoplanowych ............................ 125
  • 4. Spis treści 7 Określanie celów dotyczących odtwarzalności i wydajności systemu ......................... 126 Określanie architektury sprzętowej oraz architektury powielania danych .................... 127 Określenie dysków przeznaczonych do u ycia w bazie danych.................................. 128 Wybór właściwego układu ..................................................................................... 129 Weryfikacja przybli onych wartości obcią enia związanego z operacjami wejścia-wyjścia... 132 Rozwiązania ............................................................................................................... 134 Układ dla małej bazy wykorzystywanej przez programistów ..................................... 134 Układ dla produkcyjnej bazy danych typu OLTP ..................................................... 135 Układ dla produkcyjnej bazy danych typu OLTP zawierającej dane archiwalne........... 136 Układ dla hurtowni danych..................................................................................... 136 Poło enie plików......................................................................................................... 139 Wykorzystanie przestrzeni przez bazę danych................................................................ 139 Znaczenie klauzuli składowania.............................................................................. 141 Przestrzenie tabel zarządzane lokalnie ..................................................................... 141 Segmenty tabel...................................................................................................... 143 Segmenty indeksów ............................................................................................... 144 Segmenty wycofania.............................................................................................. 145 Segmenty tymczasowe........................................................................................... 145 Wolna przestrzeń................................................................................................... 146 Zmiana rozmiaru plików danych................................................................................... 148 Automatyczne rozszerzanie plików danych.............................................................. 148 Przenoszenie plików bazy danych................................................................................. 149 Przenoszenie plików danych................................................................................... 149 Przenoszenie plików danych za pomocą pakietu Oracle Enterprise Manager ............... 152 Przenoszenie plików czynnego dziennika powtórzeń ................................................ 157 Przenoszenie plików sterujących............................................................................. 157 Zwalnianie przestrzeni przydzielonej segmentom danych................................................ 158 Odzyskiwanie wolnej przestrzeni z plików danych ................................................... 158 Odzyskiwanie wolnej przestrzeni z tabel, klastrów oraz indeksów ............................. 159 Przebudowywanie indeksów................................................................................... 161 Przebudowywanie indeksów na bie ąco .................................................................. 162 Wykorzystanie mechanizmu Oracle Managed Files (OMF)............................................. 162 Konfigurowanie środowiska ................................................................................... 163 Tworzenie plików OMF ......................................................................................... 163 Konserwacja plików OMF...................................................................................... 165 Fizyczne dopasowanie ................................................................................................. 165 Część II Zarządzanie bazą danych ....................................................167 Rozdział 5. Zarządzanie procesem tworzenia aplikacji ............................................169 Trzy podstawowe warunki powodzenia ......................................................................... 169 Prawidłowa współpraca ............................................................................................... 170 Proces zarządzania ...................................................................................................... 171 Definiowanie środowiska ....................................................................................... 171 Definicje ról.......................................................................................................... 172 Zadania ................................................................................................................ 174 Zarządzanie zasobami i składowane plany wykonania............................................... 177 Rozmiary obiektów bazy danych ............................................................................ 184 Tworzenie iteracyjne ............................................................................................. 208 Iteracyjne definicje kolumn .................................................................................... 208 Przenoszenie tabel przy otwartej bazie danych ......................................................... 209 Wymuszanie współu ytkowania kursorów............................................................... 211 Technologia................................................................................................................ 212 Narzędzia typu CASE ............................................................................................ 212 Katalogi współu ytkowane..................................................................................... 213
  • 5. 8 Oracle9i. Podręcznik administratora baz danych Bazy danych kontroli projektu ................................................................................ 213 Dyskusyjne bazy danych........................................................................................ 213 Zarządzanie pakietami ................................................................................................. 213 Tworzenie diagramów............................................................................................ 214 Wymagania dotyczące przestrzeni........................................................................... 214 Cele strojenia ........................................................................................................ 214 Wymagania związane z ochroną danych.................................................................. 214 Wymagania związane z obsługą danych .................................................................. 215 Wymagania związane z wersjami............................................................................ 215 Plany wykonania ................................................................................................... 215 Procedury testów przyjęcia..................................................................................... 216 Obszar testowania ................................................................................................. 216 Zarządzanie środowiskiem ........................................................................................... 217 Rozdział 6. Monitorowanie wykorzystania przestrzeni .............................................219 Najczęściej spotykane przyczyny problemów ................................................................ 219 Brak wolnego miejsca w przestrzeni tabel................................................................ 220 Niewystarczająca przestrzeń dla segmentów tymczasowych ...................................... 221 Osiągnięcie maksymalnych rozmiarów przez segmenty wycofania............................. 221 Fragmentacja segmentów danych............................................................................ 222 Fragmentacja wolnej przestrzeni ............................................................................. 223 Niewłaściwie dobrane rozmiary obszarów SGA ....................................................... 223 Wybór celów monitorowania........................................................................................ 224 Produkt końcowy ........................................................................................................ 224 Utworzenie bazy monitorującej, będącej centrum dowodzenia ........................................ 228 Zbieranie danych................................................................................................... 231 Generowanie raportów ostrze eń ............................................................................ 237 Raport sumaryczny dotyczący przestrzeni................................................................ 240 Usuwanie danych .................................................................................................. 243 Monitorowanie struktur pamięciowych.......................................................................... 244 Dodatkowe alerty i ostrze enia ..................................................................................... 244 Operacje wejścia-wyjścia na plikach bazy danych .................................................... 245 Tempo przydziału przestrzeni w obiektach............................................................... 249 Dobrze zarządzana baza danych ................................................................................... 252 Rozdział 7. Zarządzanie transakcjami ....................................................................253 Przegląd segmentów wycofania .................................................................................... 253 Wykorzystanie segmentów wycofania przez bazę danych ......................................... 254 Aktywowanie segmentów wycofania....................................................................... 257 Określenie segmentu wycofania transakcji ............................................................... 259 Wykorzystanie przestrzeni wewnątrz segmentów wycofania ........................................... 259 Optymalna klauzula składowania ............................................................................ 262 Monitorowanie wykorzystania segmentu wycofania ....................................................... 264 Zmniejszanie segmentów wycofania ....................................................................... 265 Monitorowanie bie ącego statusu............................................................................ 265 Monitorowanie dynamicznych rozszerzeń................................................................ 266 Transakcje przypadające na segment wycofania ....................................................... 269 Rozmiary danych w segmentach wycofania ............................................................. 269 Wykorzystanie pakietu Oracle Enterprise Manager do zarządzania segmentami wycofania... 270 Tworzenie segmentu wycofania za pomocą pakietu OEM ......................................... 270 Tworzenie segmentu wycofania o właściwościach istniejącego segmentu wycofania ... 273 Nadawanie segmentowi wycofania statusu online..................................................... 273 Nadawanie segmentowi wycofania statusu offline .................................................... 274 Usuwanie segmentu wycofania ............................................................................... 274
  • 6. Spis treści 9 Określenie liczby i rozmiaru segmentów wycofania ....................................................... 274 Wielkość rekordu transakcji ................................................................................... 275 Liczba transakcji ................................................................................................... 276 Wyznaczenie optymalnego rozmiaru ....................................................................... 276 Tworzenie segmentów wycofania ........................................................................... 277 Produkcyjne segmenty wycofania a segmenty wycofania związane z procesem ładowania danych ................................................................ 278 Rozwiązania ............................................................................................................... 279 Aplikacje OLTP.................................................................................................... 279 Hurtownie danych i aplikacje wsadowe ................................................................... 280 Korzystanie z przestrzeni odwołania ............................................................................. 281 Ustawianie wstrzymywania odwoływanych danych.................................................. 282 Tworzenie przestrzeni odwołania ............................................................................ 282 Monitorowanie przestrzeni odwołania ..................................................................... 283 Zasady stosowania przestrzeni odwołania ................................................................ 283 Rozdział 8. Strojenie bazy danych..........................................................................285 Strojenie projektu aplikacji........................................................................................... 285 Efektywny projekt tabeli ........................................................................................ 286 Podział zasobów procesora..................................................................................... 287 Efektywny projekt aplikacji.................................................................................... 289 Strojenie kodu SQL..................................................................................................... 290 Wpływ uporządkowania na tempo ładowania........................................................... 292 Dodatkowe opcje indeksowania .............................................................................. 293 Generowanie planów wykonania............................................................................. 295 Strojenie wykorzystywania pamięci .............................................................................. 298 Definiowanie rozmiaru obszaru SGA ...................................................................... 302 U ycie optymalizatora kosztowego ......................................................................... 303 Strojenie przechowywania danych ................................................................................ 305 Defragmentacja segmentów.................................................................................... 306 Szacowanie wykorzystania indeksów ...................................................................... 309 Przestrzenie tabel zarządzane lokalnie ..................................................................... 310 Defragmentacja wolnych obszarów ......................................................................... 311 Identyfikowanie wierszy rozdzielonych ................................................................... 314 Zwiększenie rozmiaru bloku Oracle ........................................................................ 315 Korzystanie z tabel indeksowych ............................................................................ 316 Strojenie manipulacji danymi ....................................................................................... 318 Wstawienia masowe — wykorzystanie opcji bezpośredniego ładowania programu SQL*Loader ........................................................................................ 318 Wstawienia masowe — praktyczne porady.............................................................. 321 Usunięcia masowe: polecenie truncate..................................................................... 323 Partycje................................................................................................................ 324 Strojenie pamięci fizycznej .......................................................................................... 324 Stosowanie urządzeń bezpośrednich........................................................................ 325 Stosowanie macierzy RAID i powielanie dysków..................................................... 325 Strojenie pamięci logicznej .......................................................................................... 325 Zredukowanie ruchu w sieci ......................................................................................... 326 Dane replikacji ...................................................................................................... 326 Zastosowanie wywołań odległych procedur ............................................................. 332 Wykorzystanie programu OEM oraz pakietów strojenia wydajności ................................ 334 Pakiet Oracle Expert .............................................................................................. 334 Opcja mened era wydajności Performance Manager ................................................ 337 Rozwiązania strojenia .................................................................................................. 340
  • 7. 10 Oracle9i. Podręcznik administratora baz danych Rozdział 9. Korzystanie z pakietu STATSPACK .......................................................343 Instalowanie pakietu STATSPACK .............................................................................. 343 Zabezpieczenia konta PERFSTAT.......................................................................... 344 Po instalacji .......................................................................................................... 344 Zbieranie statystyk ................................................................................................ 345 Uruchamianie raportów statystycznych ................................................................... 348 Zarządzanie danymi zebranymi przez STATSPACK ................................................ 351 Odinstalowanie pakietu STATSPACK .................................................................... 352 Rozdział 10. Zabezpieczenie i monitorowanie bazy danych........................................353 Mo liwości zabezpieczenia .......................................................................................... 353 Zabezpieczenie konta............................................................................................. 354 Uprawnienia obiektowe.......................................................................................... 354 Uprawnienia i role systemowe ................................................................................ 354 Wdra anie zabezpieczeń .............................................................................................. 355 Punkt wyjścia: zabezpieczenie systemu operacyjnego ............................................... 355 Tworzenie u ytkowników ...................................................................................... 355 Usuwanie u ytkowników ....................................................................................... 359 Uprawnienia systemowe ........................................................................................ 359 Profile u ytkownika............................................................................................... 363 Zarządzanie hasłem ............................................................................................... 365 Uniemo liwianie ponownego zastosowania hasła ..................................................... 367 Ustawienie zło oności haseł ................................................................................... 368 Wiązanie kont bazy danych z kontami hosta ............................................................ 373 Wykorzystanie pliku haseł do identyfikacji .............................................................. 376 Ochrona za pomocą haseł....................................................................................... 377 Uprawnienia obiektowe.......................................................................................... 378 Wykazy uprawnień................................................................................................ 382 Ograniczanie dostępnych poleceń za pomocą tabel Product User Profile .......................... 384 Zabezpieczenie hasła podczas logowania....................................................................... 385 Szyfrowanie haseł zwiększa mo liwości kontroli ........................................................... 386 Składowanie haseł ................................................................................................. 386 Ustawianie niemo liwych haseł .............................................................................. 386 Przejmowanie konta innego u ytkownika ................................................................ 387 Wirtualne Prywatne Bazy Danych ................................................................................ 391 Tworzenie bazy VPD ............................................................................................ 392 Obserwacja................................................................................................................. 398 Obserwacja logowania ........................................................................................... 399 Obserwacja działań................................................................................................ 399 Obserwacja obiektów............................................................................................. 401 Ochrona zapisu obserwacji ..................................................................................... 403 Zabezpieczenie w środowisku rozproszonym................................................................. 403 Rozwiązania ............................................................................................................... 404 Rozdział 11. Procedury tworzenia kopii zapasowych i odtwarzania danych.................405 Mo liwości................................................................................................................. 405 Logiczne kopie zapasowe............................................................................................. 406 Programy Export i Import ...................................................................................... 406 Fizyczne kopie zapasowe ............................................................................................. 407 Kopie zapasowe zamkniętych plików danych........................................................... 407 Kopie zapasowe otwartych plików danych............................................................... 408 Wdro enia .................................................................................................................. 409 Eksportowanie ...................................................................................................... 409 Importowanie........................................................................................................ 418 Kopie zapasowe zamkniętych plików danych........................................................... 424
  • 8. Spis treści 11 Kopie zapasowe otwartych plików danych............................................................... 426 U ywanie programu LogMiner ............................................................................... 438 Rezerwowe bazy danych (typu standby).................................................................. 446 Integracja procedur wykonywania kopii zapasowych...................................................... 448 Integracja logicznych i fizycznych kopii zapasowych ............................................... 448 Integracja operacji wykonywania kopii zapasowych bazy danych i systemu operacyjnego........................................................................................ 450 Rozdział 12. Wykorzystanie narzędzia Recovery Manager (RMAN)............................453 Ogólne informacje na temat narzędzia Recovery Manager .............................................. 453 Architektura narzędzia Recovery Manager............................................................... 455 Korzystanie z narzędzia Recovery Manager i programu RMAN................................. 459 U ywanie narzędzia OEM Backup Manager ............................................................ 465 Odtwarzanie za pomocą narzędzia OEM ................................................................. 474 Generowanie list i raportów.................................................................................... 479 Zalecenia odnośnie wykorzystania programu RMAN ..................................................... 482 Część III System Oracle w sieci ........................................................487 Rozdział 13. Narzędzie Oracle Net............................................................................489 Ogólne wiadomości na temat Oracle Net ....................................................................... 489 Deskryptory połączeń ............................................................................................ 493 Nazwy usług ......................................................................................................... 494 Zastąpienie pliku tnsnames.ora narzędziem Oracle Internet Directory......................... 494 Procesy nasłuchujące ............................................................................................. 495 Procesy nasłuchujące w systemie Oracle9i............................................................... 496 Stosowanie narzędzia Oracle Net Configuration Assistant............................................... 498 Konfigurowanie procesu nasłuchującego ................................................................. 499 Stosowanie narzędzia Oracle Net Manager .................................................................... 505 Narzędzie Oracle Connection Manager.................................................................... 507 Stosowanie narzędzia Connection Manager.............................................................. 508 Nazewnictwo katalogów w Oracle Internet Directory................................................ 511 U ywanie serwera Oracle Names............................................................................ 514 Uruchamianie procesu nasłuchującego serwera .............................................................. 515 Kontrolowanie procesu nasłuchującego serwera............................................................. 517 Przykład zastosowania — aplikacje klient-serwer........................................................... 519 Przykład zastosowania — powiązania baz danych.......................................................... 519 Przykład zastosowania — polecenie copy...................................................................... 521 Serwer Oracle Names a konfiguracje klienta lub serwery katalogowe............................... 523 Strojenie interfejsu Oracle Net...................................................................................... 524 System Unix i Oracle Net............................................................................................. 525 Identyfikacja hostów.............................................................................................. 526 Identyfikacja baz danych........................................................................................ 526 Rozwiązywanie problemów z połączeniami ............................................................. 527 Rozdział 14. Strojenie serwera 9iAS ........................................................................529 Uruchamianie, zatrzymywanie oraz ponowne uruchamianie serwera iAS (Apache) ........... 530 Strojenie serwera Apache oraz protokołu TCP ............................................................... 532 Zwiększanie poziomu bezpieczeństwa instalacji serwera Apache............................... 533 Strojenie konfiguracji serwera Oracle HTTP Server ....................................................... 534 Korzystanie z usług Oracle Caching.............................................................................. 535 Oracle Web Cache ...................................................................................................... 535 Korzystanie z Oracle Web Cache............................................................................ 536 Oracle Web Cache Manager ................................................................................... 537
  • 9. 12 Oracle9i. Podręcznik administratora baz danych Uniewa nianie buforowanych dokumentów............................................................. 550 Równowa enie obcią enia pomiędzy serwerami aplikacji ......................................... 552 Oracle9iAS Database Cache......................................................................................... 553 Sposób działania Database Cache ........................................................................... 553 Wykorzystywanie Oracle9iAS Database Cache........................................................ 555 Rozdział 15. Zarządzanie dużymi bazami danych.......................................................557 Konfiguracja środowiska.............................................................................................. 557 Ustalanie rozmiarów du ych baz danych ................................................................. 558 Ustalanie rozmiarów obszarów wspomagania........................................................... 563 Wybór układu fizycznego....................................................................................... 564 Partycje................................................................................................................ 565 Tworzenie perspektyw materializowanych............................................................... 574 Tworzenie i zarządzanie tabelami indeksowymi ....................................................... 575 Tworzenie i zarządzanie tabelami zewnętrznymi ...................................................... 576 Tworzenie i zarządzanie globalnymi tabelami tymczasowymi.................................... 577 Tworzenie i zarządzanie indeksami bitmapowymi .................................................... 577 Zarządzanie transakcjami ............................................................................................. 579 Konfigurowanie środowiska transakcji wsadowych .................................................. 580 Ładowanie danych................................................................................................. 582 Wstawianie danych................................................................................................ 583 Usuwanie danych .................................................................................................. 584 Kopie zapasowe .......................................................................................................... 587 Określenie potrzeb i strategii wykonywania kopii zapasowych .................................. 587 Opracowanie planu wykonywania kopii zapasowych ................................................ 589 Strojenie..................................................................................................................... 590 Strojenie zapytań wobec du ych tabel ..................................................................... 591 Stosowanie przenośnych przestrzeni tabel...................................................................... 593 Generowanie zestawu przenośnych przestrzeni tabel................................................. 594 Podłączanie zestawu przenośnych przestrzeni tabel .................................................. 595 Przestrzenie tabel zarządzane lokalnie ........................................................................... 596 Rozdział 16. Zarządzanie rozproszonymi bazami danych............................................599 Odległe zapytania........................................................................................................ 600 Operacje na odległych danych — zatwierdzanie dwufazowe ........................................... 601 Dynamiczna replikacja danych ..................................................................................... 602 Zarządzanie danymi rozproszonymi .............................................................................. 603 Infrastruktura — wymuszenie przezroczystości lokalizacji ........................................ 604 Zarządzanie powiązaniami baz danych .................................................................... 609 Zarządzanie wyzwalaczami baz danych................................................................... 611 Zarządzanie perspektywami materializowanymi....................................................... 613 U ywanie narzędzia OEM w celu tworzenia perspektyw materializowanych............... 625 Zarządzanie transakcjami rozproszonymi ...................................................................... 631 Rozwiązywanie nierozstrzygniętych transakcji rozproszonych................................... 631 Monitorowanie rozproszonych baz danych ....................................................................... 633 Strojenie rozproszonych baz danych ............................................................................. 634 Stosowanie kolejek zadań ............................................................................................ 637 Zarządzanie zadaniami........................................................................................... 638 Dodatki ...............................................................................................641 Dodatek A Zestawienie poleceń SQL dla administratorów baz danych ....................643 ALTER DATABASE ............................................................................................ 643 ALTER INDEX .................................................................................................... 665 ALTER MATERIALIZED VIEW .......................................................................... 679
  • 10. Spis treści 13 ALTER MATERIALIZED VIEW LOG .................................................................. 688 ALTER OUTLINE................................................................................................ 692 ALTER PROFILE ................................................................................................ 693 ALTER ROLE...................................................................................................... 694 ALTER ROLLBACK SEGMENT.......................................................................... 695 ALTER SEQUENCE ............................................................................................ 697 ALTER SYSTEM................................................................................................. 699 ALTER TABLE.................................................................................................... 708 ALTER TABLESPACE......................................................................................... 759 ALTER TRIGGER................................................................................................ 765 ALTER USER ...................................................................................................... 767 ASSOCIATE STATISTICS................................................................................... 770 AUDIT................................................................................................................. 773 CREATE CONTROLFILE .................................................................................... 780 CREATE DATABASE.......................................................................................... 784 CREATE DATABASE LINK ................................................................................ 792 CREATE DIRECTORY ........................................................................................ 794 CREATE INDEX.................................................................................................. 795 CREATE LIBRARY ............................................................................................. 810 CREATE MATERIALIZED VIEW ........................................................................ 811 CREATE MATERIALIZED VIEW LOG................................................................ 824 CREATE OUTLINE ............................................................................................. 828 CREATE PFILE ................................................................................................... 831 CREATE PROFILE .............................................................................................. 832 CREATE ROLE ................................................................................................... 836 CREATE ROLLBACK SEGMENT ....................................................................... 837 CREATE SEQUENCE .......................................................................................... 839 CREATE SPFILE ................................................................................................. 842 CREATE SYNONYM........................................................................................... 844 CREATE TABLE ................................................................................................. 846 CREATE TABLESPACE ...................................................................................... 881 CREATE TEMPORARY TABLESPACE ............................................................... 888 CREATE TRIGGER ............................................................................................. 890 CREATE USER.................................................................................................... 898 CREATE VIEW.................................................................................................... 901 EXPLAIN PLAN .................................................................................................. 907 GRANT ............................................................................................................... 909 klauzula_składowania ............................................................................................ 924 klauzula_warunku ................................................................................................. 929 NOAUDIT ........................................................................................................... 944 RENAME............................................................................................................. 946 REVOKE ............................................................................................................. 947 SET CONSTRAINT[S] ......................................................................................... 952 SET ROLE ........................................................................................................... 953 SET TRANSACTION ........................................................................................... 954 specyfikacja_pliku................................................................................................. 956 TRUNCATE ........................................................................................................ 958 Dodatek B Parametry inicjalizacji..........................................................................963 Od tłumacza ............................................................................................................... 963 Lista parametrów inicjalizacji systemu Oracle9i............................................................. 963 Skorowidz............................................................................................985
  • 11. Rozdział 10. Zabezpieczenie i monitorowanie bazy danych Celem tworzenia i wymuszania procedur zabezpieczenia jest ochrona jednego z najcen- niejszych zasobów firmy — danych. Składowanie danych w bazie danych czyni je bar- dziej u ytecznymi i dostępnymi dla całej firmy ale równie zwiększa prawdopodobień- stwo uzyskiwania do nich nieautoryzowanego dostępu. Takie próby dostępu muszą być wykrywane i nale y im zapobiegać. Baza danych Oracle posiada kilka poziomów zabezpieczeń i zapewnia mo liwość mo- nitorowania ka dego z nich. W niniejszym rozdziale podano opis wszystkich poziomów zabezpieczeń oraz omówiono proces ich obserwacji. Przedstawiono równie metody ustawiania niemo liwych do wykrycia haseł oraz wymuszanie na hasłach uniewa nień. Możliwości zabezpieczenia Baza danych Oracle udostępnia administratorowi bazy danych kilka poziomów zabez- pieczeń: zabezpieczenie konta w celu kontroli działania u ytkowników; zabezpieczenie konta dla obiektów bazy danych; zabezpieczenie na poziomie systemu w celu zarządzania uprawnieniami globalnymi. Ka da z tych mo liwości zostanie omówiona w następnych podrozdziałach. Podroz- dział Wdra anie zabezpieczeń zawiera szczegółowe informacje dotyczące efektywnego wykorzystania dostępnych opcji.
  • 12. 354 Część II Zarządzanie bazą danych Zabezpieczenie konta Aby uzyskać dostęp do bazy danych Oracle, konieczne jest uzyskanie dostępu do konta w bazie danych. Ten dostęp mo e być albo bezpośredni — przez połączenia u ytkow- nika z bazą danych, albo pośredni. Do połączeń pośrednich zalicza się uzyskiwanie do- stępu przez wstępnie ustawione autoryzacje wewnątrz powiązań między bazami danych. Ka de konto musi posiadać swoje hasło. Konto bazy danych mo e być związane z kon- tem systemu operacyjnego. Hasło jest ustawiane przez u ytkownika podczas tworzenia konta u ytkownika i mo e być zmienione po utworzeniu konta. Mo liwość zmiany hasła konta przez u ytkownika jest ograniczona właściwościami programów narzędziowych, do których u ytkownikowi przyznano dostęp. Baza danych przechowuje zaszyfrowaną wersję hasła w tabeli słow- nika danych. Je eli konto jest bezpośrednio związane z kontem systemu operacyjnego, istnieje mo liwość pominięcia procesu sprawdzania hasła i zamiast tego poleganie na systemowej metodzie identyfikacji u ytkowników. Od wersji Oracle8 hasło mo e być ponownie wykorzystane (za pomocą ustawienia hi- storii hasła bazy danych). Mo na równie u yć profili do wymuszenia standardowych parametrów hasła (takich jak minimalna długość). Mo na równie automatycznie blo- kować hasła, je eli występuje wiele kolejnych błędów podczas łączenia się z kontem. Uprawnienia obiektowe Dostęp do poszczególnych obiektów bazy danych jest uaktywniany przez uprawnienia (ang. privileges). Uprawnienia są nadawane za pomocą polecenia ITCPV i umo liwiają wykonywanie określonych poleceń w odniesieniu do określonych obiektów bazy danych. Na przykład, je eli u ytkownik 6*7/2'4 jest właścicielem tabeli '/2.1;'' i wykonuje polecenie ITCPV UGNGEV QP '/2.1;'' VQ 27$.+% wtedy wszyscy u ytkownicy (27$.+%) będą mogli wybierać rekordy z tabeli '/2.1;'' u ytkownika 6*7/2'4. W celu uproszczenia zarządzania uprawnieniami mo na tworzyć role, które są nazwanymi grupami uprawnień. W przypadku aplikacji, z których korzy- sta wielu u ytkowników, zastosowanie mechanizmu ról w du ym stopniu zmniejsza liczbę nadawanych uprawnień. Role mogą być zabezpieczone hasłem, mogą być dyna- micznie aktywowane i dezaktywowane, co umo liwia uzyskanie dodatkowej warstwy zabezpieczenia. Uprawnienia i role systemowe Istnieje mo liwość wykorzystania roli do zarządzania dostępnymi dla u ytkowników poleceniami systemowymi. Do tych poleceń zalicza się: ETGCVG VCDNG oraz CNVGT KPFGZ. Operacje dotyczące ka dego typu obiektu bazy danych są autoryzowane za pomocą osobnych uprawnień. Na przykład u ytkownikowi mo na przyznać prawo %4'#6' 6#$.' ale nie prawo %4'#6' 6;2'. Tworzone role systemowe mo na dostosowywać do wymagań u ytkowników, co pozwala na przyznawanie dokładnie takich uprawnień, jakich u yt- kownicy ci potrzebują. Unika się w ten sposób przyznawania nadmiernych uprawnień
  • 13. Rozdział 10. Zabezpieczenie i monitorowanie bazy danych 355 w bazie danych. Jak wspomniano w rozdziale 5., role %100'%6 oraz 4'5174%' zapewniają podstawowe uprawnienia systemowe wymagane, odpowiednio, przez końcowych u yt- kowników i programistów. U ytkownicy o przypisanej roli 4'5174%' posiadają tym samym prawo systemowe 70.+ /+6'& 6#$.'52#%', umo liwiające im tworzenie obiektów w dowolnym miejscu bazy danych. Z powodu tego dodatkowego prawa nale y ograniczać przyznawanie roli 4'51 74%' do środowisk związanych z programowaniem oraz testowaniem aplikacji. Wdrażanie zabezpieczeń W bazie danych Oracle mo na zastosować następujące mechanizmy zabezpieczające: role, profile oraz bezpośrednie przyznawanie uprawnień. Pakiet Oracle Enterprise Ma- nager udostępnia program narzędziowy Security Manager (Mened er zabezpieczeń), co umo liwia zarządzanie kontami u ytkowników, rolami, uprawnieniami i profilami. W następnych podrozdziałach omówiono sposoby wykorzystywania wszystkich tych mo liwości. Uwzględniono tak e kilka nieudokumentowanych opcji dodatkowych. Punkt wyjścia: zabezpieczenie systemu operacyjnego Uzyskanie dostępu do bazy danych jest mo liwe dopiero po uzyskaniu pośredniego lub bezpośredniego dostępu do serwera, na którym jest uruchomiona baza danych. Pierw- szym krokiem zabezpieczania bazy danych jest zabezpieczenie platformy i sieci, w której rezyduje ta platforma. Po dokonaniu tej czynności nale y rozwa yć sposób zabezpie- czenia systemu operacyjnego. Pewne pliki bazy danych Oracle nie muszą być bezpośrednio udostępniane jej u ytkow- nikom. Na przykład, pliki danych oraz pliki czynnego dziennika powtórzeń są zapisywane i odczytywane tylko przez procesy drugoplanowe Oracle. Zatem jedynie administratorzy baz danych, którzy tworzą i usuwają te pliki, wymagają do nich bezpośredniego dostępu na poziomie systemu operacyjnego. Nale y pamiętać o zabezpieczeniu tych plików, jak rów- nie o zabezpieczeniu wynikowych plików eksportu i innych plików kopii zapasowych. Dane mogą być kopiowane do innych baz danych — albo jako część schematu replika- cji, albo podczas zapełniania projektowanej bazy danych. Zatem zabezpieczenie danych jest mo liwe pod warunkiem zabezpieczenia ka dej bazy danych, w której rezydują dane. Nale y tak e pamiętać o kopiach zapasowych ka dej z baz danych. Je eli istnieje mo - liwość uzyskania dostępu osób niepo ądanych do taśm archiwizowania zawierających kopie danych, cały wdro ony w bazie danych system zabezpieczeń staje się bezwarto- ściowy. Nie wolno dopuszczać do mo liwości zaistnienia nieuprawnionego dostępu do którejkolwiek kopii chronionych danych. Tworzenie użytkowników Celem tworzenia u ytkowników jest zakładanie bezpiecznych, u ytecznych kont o ade- kwatnych uprawnieniach i odpowiednich ustawieniach domyślnych. Do tworzenia nowych kont bazy danych mo na u ywać polecenia ETGCVG WUGT. Bezpośrednio po utworzeniu konto nie posiada adnych mo liwości i jego u ytkownik nie jest się w stanie nawet zalogować.
  • 14. 356 Część II Zarządzanie bazą danych Następuje to dopiero po przyznaniu uprawnień. Wszystkie konieczne ustawienia two- rzonego konta u ytkownika mogą być określone za pomocą pojedynczego polecenia ETGCVG WUGT. Do tych ustawień zaliczają się wartości wszystkich parametrów wykaza- nych w tabeli 10.1. Tabela 10.1. Parametry polecenia create user Parametr Zastosowanie WUGTPCOG Nazwa schematu. RCUUYQTF Hasło dla konta. Mo e być bezpośrednio związane z nazwą konta systemu operacyjnego hosta lub identyfikowane przez sieciową usługę identyfikacyjną. Dla identyfikacji bazującej na hoście nale y u yć klauzuli KFGPVKHKGF GZVGTPCNN[. Dla identyfikacji bazującej na sieci nale y u yć klauzuli KFGPVKHKGF INQDCNN[ CU. FGHCWNV VCDNGURCEG Domyślna przestrzeń tabel przeznaczona do składowania obiektów utworzonych w danym schemacie. To ustawienie nie daje u ytkownikowi praw do tworzenia obiektów, tylko ustawia wartość domyślną parametru wykorzystywanego w razie przyznania u ytkownikowi takich uprawnień. VGORQTCT[ Przestrzeń tabel przeznaczona do składowania tymczasowych segmentów VCDNGURCEG wykorzystywanych podczas operacji sortowania w ramach transakcji. SWQVC =QP Umo liwia u ytkownikowi składowanie obiektów w określonej przestrzeni tabel VCDNGURCEG? a do całkowitego rozmiaru określonego jako limit. RTQHKNG Przydziela u ytkownikowi profil. Je eli nie określono adnego profilu, wtedy jest stosowany profil domyślny. Profile umo liwiają ograniczenie wykorzystania zasobów systemowych oraz wymuszają stosowanie reguł zarządzania hasłem. RCUUYQTF GZRKTG Uniewa nia hasło. CEEQWPV Ustawia konto jako zablokowane bądź odblokowane. FGHCWNV TQNG=U? Ustawia domyślne role, które mają być uaktywnione dla u ytkownika. Nie można ustawić domyślnych ról podczas tworzenia użytkownika: ETGCVG WUGT (4'& KFGPVKHKGF D[ (4'& FGHCWNV TQNG #$% 14# &'#(#7.6 41.' ENCWUG PQV XCNKF HQT %4'#6' 75'4 Poni ej przedstawiono przykładowe polecenie ETGCVG WUGT. Tworzony jest tu u ytkow- nik 6*7/2'4 z hasłem 4$$ 6, z domyślną przestrzenią tabel 75'45, z tymczasową prze- strzenią tabel 6'/2 bez limitów wykorzystania przestrzeni oraz z profilem domyślnym. ETGCVG WUGT 6*7/2'4 KFGPVKHKGF D[ 4$$ 6 FGHCWNV VCDNGURCEG 75'45 VGORQTCT[ VCDNGURCEG 6'/2 Nie określono tu adnego profilu, zatem zastosowany będzie profil domyślny bazy da- nych. Jest to rzeczywisty profil o nazwie &'(#7.6. Jego początkowe ustawienia dla wszystkich limitów korzystania z zasobów są ustawione na 70.+/+6'& (nieograniczony). Szczegółowe informacje dotyczące profili znajdują się w podrozdziale Profile u ytkow- nika w dalszej części tego rozdziału.
  • 15. Rozdział 10. Zabezpieczenie i monitorowanie bazy danych 357 Ze względu na to, e nie określono adnych limitów, u ytkownik nie mo e tworzyć obiektów w bazie danych. Przyznanie limitu zasobów przeprowadza się za pomocą pa- rametru SWQVC polecenia ETGCVG WUGT lub polecenia CNVGT WUGT, jak pokazano poni ej. W tym przykładzie u ytkownikowi 6*7/2'4 przyznano limit 100 MB w przestrzeni tabel 75'45. CNVGT WUGT 6*7/2'4 SWQVC / QP 75'45 Po wykonaniu tego polecenia u ytkownik 6*7/2'4 mo e tworzyć segmenty o łącznej wielkości do 100 MB w przestrzeni tabel 75'45. Użytkownicy nie potrzebują limitów przestrzeni w przestrzeni tabel 6'/2, aby dla swoich zapytań tworzyć tymczasowe segmenty w tej przestrzeni tabel. Z wyjątkiem parametru WUGTPCOG (nazwa u ytkownika) wszystkie parametry w polece- niu ETGCVG WUGT mogą być zmienione za pomocą polecenia CNVGT WUGT. Program Security Manager z pakietu OEM umo liwia utworzenie nowego u ytkownika lub utworzenie u ytkownika o tych samych atrybutach, jakie posiada ju istniejący u yt- kownik. Na rysunku 10.1 przedstawiono wygląd początkowego okna interfejsu programu Security Manager, gdzie zaznaczono nazwę u ytkownika 6*7/2'4. Podczas tworzenia u ytkownika za pomocą programu narzędziowego OEM mo na przydzielać role, upraw- nienia systemowe, uprawnienia obiektowe oraz limity. Początkowe okno programu Secu- rity Manager, pokazane na rysunku 10.1, słu y do uaktywniania hasła identyfikującego u ytkownika. Dzięki narzędziom OEM mo na określić role i uprawnienia systemowe a tak e rozmiar przestrzeni przysługującej u ytkownikowi. Za pomocą odpowiedniego oznaczenia hasła, co pokazano na rysunku 10.1, mo na określić rodzaj danego konta u ytkownika. Dane konto mo e być globalne — słu ące do zarządzania odległą bazą danych. Okno to umo liwia równie określenie, e dane konto ma być identyfikowane zewnętrznie (na poziomie systemu operacyjnego). Dostępna jest tak e opcja umo li- wiająca wstępne uniewa nienie hasła, dzięki czemu dane konto mo e być utworzone jako zablokowane lub niezablokowane. Szczegółowe informacje na temat uniewa nienia hasła oraz blokowania konta znajdują się w podrozdziale Zarządzanie hasłem w dalszej czę- ści niniejszego rozdziału. Aby utworzyć nowego u ytkownika za pomocą programu OEM, nale y zaznaczyć w ob- szarze Users (U ytkownicy) przycisk General (Ogólne) i nacisnąć prawy przycisk myszy lub przycisk Create (Utwórz) z menu Object (Obiekt). Po wybraniu opcji Create (Utwórz) lub Create Like (Utwórz podobny do) uaktywnia się kreator User Creation Wizard (Kreator u ytkownika), co pozwala na szczegółowe określenie atrybutów two- rzonego u ytkownika (nadanie ról, uprawnień itd.). Domyślnie nowemu u ytkownikowi nie jest przydzielana adna rola. Aby umo liwić mu łączenie się z bazą danych, nale y przyznać mu prawo %4'#6'A5'55+10. W ten sposób utworzony u ytkownik będzie w stanie połączyć się z bazą danych. Jeśli została określona domyślna wielkość prze- strzeni tabel, zostanie ona przyznana nowemu u ytkownikowi. Dla zwykłego u ytkownika tymczasowa przestrzeń tabel jest ustawiana jako 5[UVGO #UUKIPGF (określona przez system) ale rozwijana lista pozwala na wybranie odpowiedniej tymczasowej przestrzeni tabel. Na rysunku 10.2 przedstawiono wygląd okna Create User
  • 16. 358 Część II Zarządzanie bazą danych Rysunek 10.1. Identyfikacja u ytkownika za pomocą hasła Rysunek 10.2. Okno Create User, zakładka General z oznaczonymi opcjami umo liwiającymi utworzenie nowego u ytkownika o właściwo- ściach podobnych do właściwości u ytkownika 6*7/2'4, wykorzystywanego w przykła- dach prezentowanych w tym rozdziale. Domyślną przestrzenią tabel u ytkownika 6*7/2'4 jest 75'45 a jego tymczasową przestrzenią tabel jest 6'/2. Z powy szego wynika, e no- wemu u ytkownikowi domyślnie przyznano wszystkie przydziały i uprawnienia, które posiada u ytkownik 6*7/2'4. Jedynymi informacjami, które trzeba wprowadzić w celu
  • 17. Rozdział 10. Zabezpieczenie i monitorowanie bazy danych 359 utworzenia nowego u ytkownika, są nazwa tego u ytkownika i hasło. Istnieje równie mo liwość wprowadzania innych informacji, które będą ró niły nowo utworzonego u ytkownika od u ytkownika 6*7/2'4. Usuwanie użytkowników Usuwanie u ytkownika z bazy danych przeprowadza się za pomocą polecenia FTQR WUGT. Polecenie FTQR WUGT posiada jeden parametr ECUECFG, którego zastosowanie po- woduje usunięcie wszystkich obiektów w schemacie u ytkownika przed usunięciem tego u ytkownika. Je eli u ytkownik posiada obiekty, konieczne jest określenie parametru ECUECFG w celu usunięcia u ytkownika. Przykładowe polecenie FTQR WUGT pokazano ni ej: FTQR WUGT 6*7/2'4 ECUECFG Wszystkie perspektywy, synonimy, procedury, funkcje lub pakiety odwołujące się do obiektów w schemacie usuniętego u ytkownika są oznaczane jako +08#.+&. Jeśli póź- niej zostanie dodany u ytkownik o identycznej nazwie, nie uzyska adnych związanych z poprzednikiem. Struktury te pozostaną niedostępne nawet w przypadku późniejszego utworzenia innego u ytkownika o tej samej nazwie. Program narzędziowy Security Ma- nager pakietu OEM umo liwia usuwanie u ytkowników. Przed ostatecznym usunię- ciem u ytkownika program ten wyświetla okno z ądaniem potwierdzenia. Uprawnienia systemowe Role systemowe mogą słu yć do ustalania, kto ma prawo do wykonywania poleceń systemowych, słu ących do zarządzania bazą danych. Mo na utworzyć odpowiadające rzeczywistym potrzebom role systemowe, albo te zastosować gotowe role, dostarczone wraz z bazą danych. Spis dostępnych uprawnień, które mogą być przyznane przez role systemowe, podano w dodatku A, w QRKUKG RQNGEGPKC )4#06. Klauzula YKVJ ITCPV QRVKQP polecenia ITCPV umo liwia przekazywanie uprawnień in- nym u ytkownikom. W tabeli 10.2 wyszczególniono 15 ról systemowych, dostarczanych wraz z bazą danych Oracle. Zastosowanie tych ról umo liwia ograniczenie uprawnień systemowych przyzna- wanym rolom zarządzania bazy. Oprócz ról pokazanych w tabeli 10.2 baza danych mo e uwzględniać role generowane przez opcję Advanced Queuing Option (#3A75'4A41.', ).1$#.A#3AA75'4A41.' oraz #3A#&/+0+564#614A41.'), skrypty Java (,#8#75'424+8, ,#8#+& 24+8, ,#8#&'$7)24+8, ,#8#A#&/+0 i ,#8#A&'2.1;), Oracle Context Management (%6:#22) oraz role generowane za pomocą modułu Intelligent Agents pakietu OEM (rola 1'/A/#0#)'4). Oprócz uprawnień wykazanych w tabeli 10.2 użytkownicy ról &$# oraz 4'5174%' otrzymują również prawo 70.+/+6'& 6#$.'52#%'. Rola %100'%6 jest zwykle przyznawana u ytkownikom końcowym. Rola ta daje pewne mo liwości tworzenia obiektów (włącznie z prawem %4'#6' 6#$.'), jednak nie nadaje u ytkownikowi adnego limitu (ang. quota) dla przestrzeni tabel. Zatem przed przy- dzieleniem limitów przestrzeni tabel u ytkownicy roli %100'%6 nie mogą tworzyć tabel.
  • 18. 360 Część II Zarządzanie bazą danych Tabela 10.2. Role systemowe dostarczone w Oracle9i Nazwa roli Uprawnienia przyznane roli %100'%6 #.6'4 5'55+10, %4'#6' %.756'4, %4'#6' &#6#$#5' .+0-, %4'#6' 5'37'0%', %4'#6' 5;010;/, %4'#6' 6#$.', %4'#6' 8+'9 4'5174%' %4'#6' %.756'4, %4'#6' 241%'&74', %4'#6' 5'37'0%', %4'#6' 6#$.', %4'#6' 64+))'4 &$# Wszystkie uprawnienia systemowe 9+6* #&/+0 126+10 ':2A(7..A&#6#$#5' 5'.'%6 #0; 6#$.', $#%-72 #0; 6#$.', instrukcje +05'46, &'.'6' oraz 72&#6' na tabelach 5;5+0%8+&, 5;5+0%(+. oraz 5;5+0%':2 9/A#&/+0A41.' Wszystkie uprawnienia narzędzia Worspace Manger wraz z opcją )4#06 126+10 +/2A(7..A&#6#$#5' $'%1/' 75'4 &'.'6'A%#6#.1)A41.' prawo &'.'6' na wszystkich pakietach słownika ':'%76'A%#6#.1)A41.' prawo ':'%76' na wszystkich pakietach słownika 5'.'%6A%#6#.1)A41.' prawo 5'.'%6 na wszystkich tabelach i perspektywach katalogowych %4'#6'A6;2' %4'#6' 6;2', ':'%76', ':'%76' #0; 6;2', #&/+0 126+10, )4#06 126+10 4'%18'4;A%#6#.1)A190'4 &412 41.', %4'#6' 41.', %4'#6' 64+))'4, %4'#6' 241%'&74' 1.#2A&$# #.6'4 #0; &+/'05+10, #.6'4 #0; 6#$.', #0#.;<' #0;, %4'#6' #0; &+/'05+10, %4'#6' #0; +0&':, %4'#6' #0; 6#$.', %4'#6' #0; 8+'9, &412 #0; &+/'05+10, &412 #0; 6#$.', &412 #0; 8+'9, .1%- #0; 6#$.', 5'.'%6 #0; &+%6+10#4;, 5'.'%6 #0; 6#$.' *5A#&/+0A41.' *5A':6'40#.A1$,'%6, *5A':6'40#.A75'4 9-#&/+0 %4'#6' #0; &+%6+10#4;, %4'#6' %.756'4, %4'#6' 241%'&74', %4'#6' 6#$.', %4'#6' 64+))'4, %4'#6' 6;2', &412 #0; &+4'%614; 9-75'4 %4'#6' #0; &+%6+10#4;, %4'#6' %.756'4, %4'#6' 241%'&74', %4'#6' 6#$.', %4'#6' 64+))'4, %4'#6' 6;2', &412 #0; &+4'%614; Rola 4'5174%' jest przyznawana programistom. Zgodnie z informacjami przedstawionymi w rozdziale 5., rola 4'5174%' daje u ytkownikom najczęściej stosowane uprawnienia potrzebne do programowania aplikacji. Rola &$# posiada wszystkie 124 uprawnienia dostępne na poziomie systemu z opcją nadawania tych uprawnień innym u ytkownikom ()4#06 126+10). Firma Oracle zaleca tworzenie własnych ról a nie poleganie na trzech opisanych powy- żej. Role &$#, %100'%6 czy 4'5174%' mogą zostać zarzucone w przyszłych wersjach. Role +/2A(7..A&#6#$#5' oraz ':2A(7..A&#6#$#5' są stosowane, odpowiednio, podczas importowania i eksportowania danych z bazy (patrz rozdział 11.). Te role stanowią część roli &$#. Role te mogą tak e słu yć do przyznania u ytkownikom ograniczonych uprawnień zarządzania bazą danych. Role 5'.'%6A%#6#.1)A41.', ':'%76'A%#6#.1)A41.' oraz &'.'6'A%#6#.1)A41.' zostały wprowadzone w wersji Oracle8.
  • 19. Rozdział 10. Zabezpieczenie i monitorowanie bazy danych 361 Role 5'.'%6A%#6#.1)A41.' oraz ':'%76'A%#6#.1)A41.' przyznają u ytkownikom upraw- nienia do wybierania lub wykonywania eksportowalnych obiektów słownika danych. Warto tu wspomnieć, e nie ka dy obiekt bazy danych jest eksportowany podczas peł- nego eksportu systemowego. Dokładniejsze informacje na ten temat znajdują się w roz- dziale 11. Na przykład, dynamiczne perspektywy wydajności systemu (patrz rozdział 6.) nie są eksportowane. Zatem rola 5'.'%6A%#6#.1)A41.' nie daje u ytkownikowi mo li- wości wybierania danych z dynamicznych tabel wydajności 8 41..56#6, ale daje mu mo liwość wykonywania zapytań na większości danych ze słownika danych. Podobnie rola ':'%76'A%#6#.1)A41.' daje u ytkownikom mo liwość wykonywania procedur i funkcji, które są częścią słownika danych. Prawo %4'#6' 6;2' jest uaktywniane, je eli jest stosowana opcja Option. U ytkownicy, którzy mają uaktywnione prawo %4'#6' 6;2', mogą tworzyć nowe, abstrakcyjne typy danych. Po udostępnieniu ról i uprawnień systemowych mo na ponownie sprawdzić proces two- rzenia konta. Podobnie jak w przypadku procesu tworzenia kopii zapasowej bazy da- nych, do utworzenia konta nale y posiadać uprawnienia na poziomie DBA. Jednak mo na tak e określić inne uprawnienia, które umo liwiają tworzenie nowych u ytkowników. Przykładowo, mo na utworzyć nową rolę systemową o nazwie #%%1706A%4'#614. Rola ta umo liwiałaby tylko tworzenie u ytkowników bez mo liwości wykonywania innych poleceń dostępnych administratorowi. Poni ej przedstawiono przykładowe polecenia, które utworzą taką rolę. ETGCVG TQNG #%%1706A%4'#614 ITCPV %4'#6' 5'55+10 %4'#6' 75'4 #.6'4 75'4 VQ #%%1706A%4'#614 Pierwsze polecenie z powy szego przykładu tworzy rolę o nazwie #%%1706A%4'#614, natomiast drugie przyznaje tej roli mo liwość zalogowania (%4'#6' 5'55+10) oraz tworze- nia i zmiany kont (%4'#6' 75'4 oraz #.6'4 75'4). Przykładowo, rola #%%1706A%4'#614 mo e być wykorzystywana przez centralne biuro pomocy, którego zadaniem byłoby koordynowanie tworzenia wszystkich nowych kont w danej aplikacji. Rolę tę mo na utworzyć za pomocą pakietu OEM przez wybranie opcji Create Role (Utwórz rolę) i wprowadzenie odpowiednich informacji. Na rysunku 10.3 przedstawiono sposób two- rzenia roli #%%1706A%4'#614 za pomocą programu narzędziowego Security Manager pa- kietu OEM. Rysunek 10.4 przedstawia sposób przypisania uprawnień do tej roli. Centralne tworzenie kont jest pomocne w zapewnianiu odpowiednich procedur autory- zacji ądań dostępu do poszczególnych kont. Elastyczność przyznawania uprawnień i ról systemowych umo liwia przydzielenie u ytkownikowi (kontynuując przykład, mo- głoby to być centralne biuro pomocy) uprawnień pozwalających na tworzenie kont bez zapewnienia temu u ytkownikowi mo liwości wykonywania zapytań do bazy danych. Mo liwość tworzenia roli #%%1706A%4'#614 jest szczególnie u yteczna podczas wdra ania oprogramowania pakietowego. Liczni, niezale ni od siebie producenci aplikacji pakie- towych zało yli, e u ytkownicy tych aplikacji będą posiadali pełne uprawnienia admi- nistratora bazy danych, kiedy faktycznie są potrzebne jedynie mo liwości wykonywania poleceń ETGCVG WUGT oraz CNVGT WUGT. Utworzenie roli #%%1706A%4'#614 pozwoli na ograniczenie schematu pakietu uprawnień właściciela w pozostałej części bazy danych.
  • 20. 362 Część II Zarządzanie bazą danych Rysunek 10.3. Tworzenie roli ACCOUNT_ CREATOR Rysunek 10.4. Przypisanie uprawnień systemowych roli ACCOUNT_ CREATOR Role określone jako domyślne są uaktywniane po ka dym zalogowaniu. Za pomocą klauzuli FGHCWNV TQNG polecenia CNVGT WUGT mo na zmieniać domyślną rolę u ytkownika. Mo na równie określić, e dany u ytkownik nie posiada adnych ról uaktywnianych domyślnie. CNVGT WUGT 6*7/2'4 FGHCWNV TQNG 010' Mo na określić role do uaktywnienia. CNVGT WUGT 6*7/2'4 FGHCWNV TQNG %100'%6
  • 21. Rozdział 10. Zabezpieczenie i monitorowanie bazy danych 363 Mo na równie określić role, które nie powinny być uaktywniane po rozpoczęciu sesji. CNVGT WUGT 6*7/2'4 FGHCWNV TQNG CNN GZEGRV #%%1706A%4'#614 Określenie danej roli jako domyślnej za pomocą polecenia CNVGT WUGT nie powiedzie się, je eli rola ta nie została ju wcześniej przyznana u ytkownikowi. Przykładowo, je eli dany u ytkownik nie posiada roli %100'%6 na poziomie systemu, wtedy próba ustawienia dla u ytkownika tej roli jako domyślnej zakończy się wystąpieniem następującego komu- nikatu o błędzie: 14# TQNG %100'%6 FQGU PQV GZKUVU Je eli określona rola jest specyficzną rolą bazy danych, która nie została przyznana u ytkownikowi, polecenie CNVGT WUGT nie powiedzie się i wystąpi następujący komunikat o błędzie: 14# &'(#7.6 41.' #%%1706A%4'#614 PQV ITCPVGF VQ WUGT Zatem przed ustalaniem domyślnych ról u ytkowników jest konieczne przyznanie tych ról. W przypadku zastosowania klauzuli FGHCWNV TQNG CNN wszystkie role u ytkownika są uaktywniane po rozpoczęciu sesji u ytkownika. Je eli planowane jest dynamiczne aktywowanie i dezaktywowanie ról w ró nych częściach aplikacji (za pomocą poleceń UGV TQNG), wtedy nale y kontrolować, które role są uaktywniane domyślnie. Parametr /#:A'0#$.'&A41.'5 pliku init.ora ogranicza liczbę ról, jakie każdy użytkow- nik może jednocześnie posiadać jako aktywne. Dla systemu Oracle9i wartością do- myślną jest . Przy tworzeniu roli jest ona uaktywniana domyślnie. Jeżeli jest tworzonych wiele ról, wtedy można przekroczyć ustawienie /#:A'0#$.'&A41.'5, nawet jeżeli nie jest się użytkownikiem tych ról. Profile użytkownika Profile u ytkownika mogą słu yć do określania limitów ilości zasobów systemu i bazy danych dostępnych dla u ytkownika oraz do zarządzania ograniczeniami hasła. Je eli w bazie danych nie określono adnych profili, wtedy jest wykorzystany profil domyślny określający brak ograniczeń dostępu do zasobów dla wszystkich u ytkowników. W tabeli 10.3 wyszczególniono zasoby, do których mo na ograniczyć dostęp za pomocą profili. Ustawienia 2#55914&A4'75'A/#: oraz 2#55914&A4'75'A6+/' wzajemnie się wykluczają. Jeżeli jeden z tych parametrów jest ustawiony na określoną wartość, wartość drugiego musi być ustawiona jako 70.+/+6'&.
  • 22. 364 Część II Zarządzanie bazą danych Tabela 10.3. Zasoby, które mo na ograniczać przez odpowiednie ustawianie profili Zasób Opis 5'55+10A2'4A75'4 Liczba współbie nych sesji otwieranych przez u ytkownika w instancji. %27A2'4A5'55+10 Czas pracy procesora poświęcony jednej sesji, wyra ony w setnych częściach sekundy. %27A2'4A%#.. Czas pracy procesora wykorzystany do przetwarzania jednego kroku instrukcji SQL: analizy składniowej, wykonywania instrukcji lub pobierania danych, wyra ony w setnych sekundy. %100'%6A6+/' Czas w minutach, w ciągu którego sesja mo e realizować połączenie z bazą danych. +&.'A6+/' Czas w minutach, w ciągu którego niewykorzystywana sesja mo e realizować połączenie z bazą danych. .1)+%#.A4'#&5A2'4A5'55+10 Liczba bloków bazy danych odczytywanych w czasie sesji. .1)+%#.A4'#&5A2'4A%#.. Liczba bloków bazy danych odczytywanych w czasie kroku przetwarzania instrukcji SQL: analizy składniowej, wykonywania lub pobierania. 24+8#6'A5)# Wielkość przestrzeni prywatnej, jaką sesja mo e przydzielić w dzielonym obszarze SQL (ang. Shared SQL Pool) globalnego obszaru systemu 5)# (dla serwera wielowątkowego MTS). %1/215+6'A.+/+6 Limit zło ony, bazujący na poprzednich limitach. (#+.'&A.1)+0A#66'/265 Liczba kolejnych nieudanych prób zalogowania, po przekroczeniu której nastąpi zablokowanie konta. 2#55914&A.+('A6+/' Czas wa ności hasła wyra ony jako liczba dni. 2#55914&A4'75'A6+/' Czas, po którym mo na ponownie wykorzystać hasło, wyra ony w dniach. 2#55914&A4'75'A/#: Liczba określająca, ile razy trzeba zmienić hasło przed ponownym wykorzystaniem ju u ywanego hasła. 2#55914&A.1%-A6+/' Czas zablokowania hasła po przekroczeniu ustawienia (#+.'&A.1)+0A #66'/265, wyra ony w dniach. 2#55914&A)4#%'A6+/' Okres „tymczasowego okresu wa ności”, kiedy hasło mo e być w dalszym ciągu zmienione, po osiągnięciu jego 2#55914&A.+('A6+/'. Parametr ten wyra any jest jako liczba dni. 2#55914&A8'4+(;A(70%6+10 Nazwa funkcji wykorzystanej do oceny zło oności hasła. Baza danych Oracle dostarcza jedną taką funkcję. Istnieje mo liwość jej edytowania. Jak wynika z tabeli 10.3, istnieje mo liwość ograniczenia dostępu do pewnej liczby za- sobów. Warto podkreślić, e wszystkie te ograniczenia są reakcyjne — adna akcja nie występuje przed przekroczeniem limitu zasobu. Zatem profile nie mogą wspomagać za- pobiegania wykorzystywania przez niekontrolowane zapytania du ych ilości zasobów systemowych przed wyczerpaniem określonego limitu. Dopiero, gdy ten limit zostanie osiągnięty, wykonywanie instrukcji SQL będzie zatrzymane. Profile są tworzone za pomocą polecenia ETGCVG RTQHKNG. Polecenie CNVGT RTQHKNG, które przedstawiono w poni szym przykładzie, słu y do modyfikowania istniejących profili. Tutaj następuje zmiana profilu &'(#7.6 bazy danych w celu ustawienia maksy- malnego czasu jałowego, tj. kiedy sesja jest nieaktywna, (ang. idle time) na 1 godzinę: CNVGT RTQHKNG &'(#7.6 KFNGAVKOG 
  • 23. Rozdział 10. Zabezpieczenie i monitorowanie bazy danych 365 Program narzędziowy Security Manager pakietu OEM daje mo liwość tworzenia i za- rządzania profilami poprzez graficzny interfejs u ytkownika. Na rysunku 10.5 przedsta- wiono wygląd okna z domyślnymi ustawieniami profilu, gdzie wykazano przydzielone zasoby profilu. Rysunek 10.5. Ustawienia profilu DEFAULT Stosowanie profili umo liwia równie zarządzanie zło onością hasła i jego czasem ist- nienia. Zagadnienia te opisano w następnym podrozdziale. Zarządzanie hasłem Profile mogą słu yć do zarządzania uniewa nianiem, ponownym wykorzystaniem i zło o- nością haseł. Na przykład, mo na ograniczyć czas istnienia hasła i zablokować konto, któ- rego hasło jest za stare. Mo liwe jest równie wymuszenie przynajmniej średniej zło o- ności haseł oraz ich blokowanie przy powtórzonych, nieudanych próbach zalogowania. Na przykład, je eli parametr (#+.'&A.1)+0A#66'/265 profilu u ytkownika jest ustawio- ny na wartość , wtedy dozwolonych jest pięć kolejnych nieudanych prób zalogowania. Szósta próba zakończona niepowodzeniem spowoduje zablokowanie konta. Jeżeli podczas piątej próby zostanie podane prawidłowe hasło, wtedy licznik nieuda- nych prób zalogowania zostaje wyzerowany. Umożliwia to przeprowadzenie kolejnych 5 nieudanych prób zalogowania przed zablokowaniem konta. Poni ej przedstawiono przykładowe polecenia prowadzące do utworzenia profilu .+/+ 6'&A241(+.' dla u ytkownika ,#0': ETGCVG RTQHKNG .+/+6'&A241(+.' NKOKV (#+.'&A.1)+0A#66'/265 
  • 24. 366 Część II Zarządzanie bazą danych ETGCVG WUGT ,#0' KFGPVKHKGF D[ ';4' RTQHKNG .+/+6'&A241(+.' ITCPV %4'#6' 5'55+10 VQ ,#0' W razie wystąpienia pięciu kolejnych nieudanych połączeń z kontem ,#0' system Oracle automatycznie zablokuje to konto. Jeśli następnie zostanie podane prawidłowe hasło dla konta ,#0', nastąpi wyświetlenie komunikatu o błędzie: %QPPGEV LCPGG[TG '4414 14# VJG CEEQWPV KU NQEMGF Aby odblokować konto, nale y zastosować klauzulę CEEQWPV WPNQEM polecenia CNVGT WUGT wydanego z poziomu konta &$# —administratora bazy danych. Poni ej przedsta- wiono odpowiedni przykład: CNVGT WUGT ,#0' CEEQWPV WPNQEM Po odblokowaniu konta połączenia z kontem ,#0' są ponownie dozwolone. Istnieje rów- nie mo liwość ręcznego zablokowania konta za pomocą klauzuli CEEQWPV NQEM polece- nia CNVGT WUGT. CNVGT WUGT ,#0' CEEQWPV NQEM Jeśli konto zostanie zablokowane w związku z powtórzonymi nieudanymi próbami po- łączenia, jego odblokowanie nastąpi automatycznie po przekroczeniu wartości ustawie- nia profilu konta 2#55914&A.1%-A6+/'. Na przykład, je eli parametr 2#55914&A.1%-A6+/' jest ustawiony na , wtedy konto ,#0' z poprzedniego przykładu pozostanie zablokowane przez jeden dzień, po czym nastąpi jego odblokowanie. Mo na równie ustalić maksymalny czas wa ności hasła za pomocą ustawienia 2#5 5914&A.+('A6+/' w ramach profilu. Na przykład, mo na wymusić na u ytkownikach o profilu .+/+6'&A241(+.' zmianę haseł co 30 dni. CNVGT RTQHKNG .+/+6'&A241(+.' NKOKV 2#55914&A.+('A6+/'  W powy szym przykładzie zastosowano polecenie CNVGT RTQHKNG w celu modyfikacji profilu .+/+6'&A241(+.'. Wartość 2#55914&A.+('A6+/' jest ustawiona na , zatem uniewa nienie hasła ka dego konta korzystającego z tego profilu nastąpi po 30 dniach. Je eli hasło zostało uniewa nione, nale y je zmienić podczas następnego zalogowania. Konieczne jest dokonanie tego w czasie określonym w profilu jako tymczasowy okres wa ności. Parametr tymczasowego okresu wa ności nazywa się 2#55914&A)4#%'A6+/'. Je eli hasło nie zostanie zmienione w ciągu tymczasowego okresu wa ności, konto zo- stanie uniewa nione. Jeżeli zastosowano parametr 2#55914&A.+('A6+/', należy poinstruować użytkowni- ków o sposobach łatwej zmiany haseł. Istotna jest ró nica pomiędzy uniewa nieniem a zablokowaniem konta. Z treści tego podrozdziału wynika, e zablokowane konto mo e zostać z upływem czasu automatycz- nie odblokowane. Konto uniewa nione wymaga osobistej interwencji ze strony admini- stratora bazy danych w celu jego ponownego uaktywnienia.
  • 25. Rozdział 10. Zabezpieczenie i monitorowanie bazy danych 367 W razie wykorzystywania możliwości unieważniania haseł, konta wykorzystywane przez aplikację powinny mieć inne ustawienia profilu. W przeciwnym razie istnieje możliwość zablokowania tych kont, co spowoduje unieruchomienie aplikacji. W celu ponownego uaktywnienia uniewa nionego konta nale y wykonać polecenia CNVGT WUGT. Stosowny przykład znajduje się poni ej. Najpierw hasło u ytkownika ,#0' zostało uniewa nione ręcznie przez administratora bazy danych: CNVGT WUGT LCPG RCUUYQTF GZRKTG 7UGT CNVGTGF Następnie u ytkownik ,#0' próbuje połączyć się ze swoim kontem. Kiedy podaje hasło, natychmiast jest proszony o wpisanie nowego hasła. %QPPGEV LCPGG[TG '4414 14# VJG CEEQWPV JCU GZRKTGF %JCPIKPI RCUUYQTF HQT LCPG 1NF RCUUYQTF 0GY RCUUYQTF 4GV[RG PGY RCUUYQTF 2CUUYQTF EJCPIGF %QPPGEVGF 53. Istnieje równie mo liwość zmuszenia u ytkowników do zmiany haseł podczas pierw- szego uzyskania dostępu do swoich kont. Przeprowadza się to za pomocą klauzuli RCU UYQTF GZRKTG polecenia ETGCVG WUGT. Jednak polecenie ETGCVG WUGT nie pozwala na ustawienie daty uniewa nienia nowego hasła ustawianego przez u ytkownika. W tym celu konieczne jest zastosowanie parametru profilu 2#55914&A.+('A6+/', co przedsta- wiono powy ej w odpowiednich przykładach. Przeglądanie daty uniewa nienia hasła jakiegokolwiek konta jest mo liwe po wykona- niu zapytania na kolumnie 'ZRKTGA&CVG perspektywy słownika danych &$#A75'45. U yt- kownicy chcący sprawdzić datę uniewa nienia haseł dla swoich kont mogą wykonać zapytanie na kolumnie 'ZRKTGA&CVG perspektywy słownika danych 75'4A75'45. Mogą te tego dokonać za pomocą programu SQL*Plus albo za pomocą zapytań formułowa- nych przy pomocy aplikacji klienta. Uniemożliwianie ponownego zastosowania hasła Aby uniemo liwić ponowne zastosowanie hasła, mo na wykorzystać jeden z dwóch pa- rametrów profilu: 2#55914&A4'75'A/#: lub 2#55914&A4'75'A6+/'. Trzeba tylko pamię- tać, e te dwa parametry wzajemnie się wykluczają. Je eli ustawiona zostanie wartość jednego z nich, drugi musi być ustawiony na wartość 70.+/+6'&. Parametr 2#55914&A4'75'A6+/' określa liczbę dni, po upływie których uniewa nione hasło mo e być zastosowane ponownie. Na przykład, po ustawieniu parametru 2#55914&A4'75'A 6+/' na wartość  dane hasło nie mo e być zastosowane ponownie przez czas równy 60 dniom.
  • 26. 368 Część II Zarządzanie bazą danych Parametr 2#55914&A4'75'A/#: określa liczbę zmian hasła, po których mo liwe jest za- stosowanie tego samego hasła. W przypadku próby ponownego ustawienia danego hasła przed osiągnięciem wartości granicznej system Oracle odrzuci tę próbę zmiany hasła. Poni ej przedstawiono sposób ustawienia parametru 2#55914&A4'75'A/#: dla profilu .+ /+6'&A241(+.', którego przykładowy sposób tworzenia pokazano wcześniej w tym roz- dziale. CNVGT RTQHKNG .+/+6'&A241(+.' NKOKV 2#55914&A4'75'A/#:  2#55914&A4'75'A6+/' 70.+/+6'& Je eli teraz u ytkownik ,#0' podejmie próbę ustawienia poprzednio wykorzystywanego hasła, ta próba zmiany hasła zakończy się niepowodzeniem. Poni ej znajduje się odpo- wiedni przykład. U ytkownik ,#0' ustawił hasło za pomocą polecenia: CNVGT WUGT ,#0' KFGPVKHKGF D[ #756'0 Po pewnym czasie nastąpiła jego ponowna zmiana: CNVGT WUGT ,#0' KFGPVKHKGF D[ ';4' Podczas następnej zmiany hasła u ytkownik ,#0' usiłuje ponownie wykorzystać po- przednio stosowane hasło i próba ta kończy się niepowodzeniem. CNVGT WUGT ,#0' KFGPVKHKGF D[ #756'0 CNVGT WUGT ,#0' KFGPVKHKGF D[ #756'0
  • 27. '4414 CV NKPG  14# VJG RCUUYQTF ECPPQV DG TGWUGF Zatem u ytkownik nie mo e ponownie ustawić swojego poprzedniego hasła i musi za- stosować nowe. Historia haseł jest umieszczana w tabeli o nazwie 75'4A*+5614; w schemacie 5;5. W tej tabeli system Oracle składuje identyfikator u ytkownika WUGTKF, zaszyfrowaną wartość hasła oraz datę i znacznik czasu utworzenia hasła. Po przekroczeniu wartości parametru 2#55914&A4'75'A6+/' lub jeśli liczba zmian hasła przekroczy wartość para- metru 2#55914&A4'75'A/#:, stare rekordy haseł są usuwane z tabeli 5;575'4A*+5614; . Pozwala to systemowi Oracle na rozpoznawaniu niedozwolonych haseł i odrzucanie ich. Ze względu na to, e historie haseł są składowane w tabeli będącej w posiadaniu u yt- kownika 5;5, dane te znajdują się w przestrzeni tabel 5;56'/. Dlatego utrzymywanie bardzo du ej liczby niewa nych haseł dla bardzo licznych u ytkowników, którzy często zmieniają swoje hasła, mo e spowodować sytuację, w której wymagania przestrzeni ta- beli historii haseł (5;575'4A*+5614; ) mogą wpływać na wymagania przestrzeni tabel 5;56'/. Ustawienie złożoności haseł Istnieje mo liwość wymuszenia pewnych standardów zło oności haseł stosowanych przez u ytkowników. Na przykład do takich wymogów mo na zaliczyć minimalną liczbę znaków, niedopuszczenie prostych wyrazów lub obecność przynajmniej jednej cyfry lub
  • 28. Rozdział 10. Zabezpieczenie i monitorowanie bazy danych 369 znaku interpunkcyjnego w haśle. Parametr 2#55914&A8'4+(;A(70%6+10 poleceń ETGCVG RTQHKNG oraz CNVGT RTQHKNG określa nazwę funkcji, która będzie oceniać hasła. Wtedy w razie próby ustawienia hasła, które nie spełnia danych kryteriów, hasło to nie zostanie zaakceptowane. Przykładowo, wyrazy CWUVGP oraz G[TG mogłyby być odrzucone jako hasła, poniewa nie zawierają adnych numerycznych wartości. Uproszczenie procesu wymuszania zło oności haseł jest mo liwe dzięki funkcji zwanej 8'4+(;A(70%6+10. Domyślnie ta funkcja nie jest tworzona. Utworzenie funkcji 8'4+(;A (70%6+10 zachodzi tylko po uruchomieniu skryptu utlpwdmg.sql znajdującego się w pod- katalogu /rdbms/admin katalogu podstawowego oprogramowania Oracle. Poni szy listing przedstawia skróconą wersję tego pliku. Dalej omówiono te części pliku, które wyró - niono pogrubieniem czcionki. 4GO WVNRYFOIUSN 4GO 4GO %QR[TKIJV E 1TCENG %QTRQTCVKQP  9UGNMKG RTCYC 4GO CUVTG QPG 4GO 4GO 0#<9# 4GO WVNRYFOIUSN  UMT[RV FNC NKOKVÎY CUQDÎY FQO[ NPGIQ JCU C 4GO 4GO 12+5 4GO 6Q LGUV UMT[RV FQ WCMV[YPKGPKC QRELK CTæFCPKC JCU GO 4GO RTG WUVCYKGPKG NKOKVÎY CUQDÎY FQO[ NPGIQ JCU C 4GO 4GO 79#)+ 4GO 6GP RNKM CYKGTC HWPMELú OKPKOCNPGIQ URTCYFCPKC Q QPQ EK 4GO JCU C 6Q LGUV TCEGL RTÎDPC HWPMELC MVÎTæ W [VMQYPKM OQ G 4GO W [è CD[ QRTCEQYCè HWPMELú FNC TGE[YKUV[EJ URTCYFG 4GO Q QPQ EK MVÎTG EJEKC D[ Y[MQPCè FNC PQYGIQ 4GO JCU C 4GO 4GO CUWTRWT  <OKCPC PCY[ HWPMELKAYGT[HKMCELKAJCU C 4GO RCUUYQTFAXGTKH[AHWPEVKQP  6GP UMT[RV WUVCYKC RCTCOGVT[ CUQDÎY FQO[ NPGIQ JCU C  #D[ WCMV[YPKè Y C EKYQ EK JCU C PCNG [ VGP UMT[RV WTWEJQOKè  &QO[ NPG RCTCOGVT[ CUQDÎY OQIæ D[è OKGPKQPG YGF WI RQVTGD  &QUVCTEQPC LGUV TÎYPKG HWPMELC URTCYFGPKC Q QPQ EK FQO[ NPGIQ  JCU C 6C HWPMELC Y[MQPWLG OKPKOCNPG URTCYFGPKC Q QPQ EK VCMKG  LCM OKPKOCNPæ F WIQ è JCU C E[ JCU Q PKG LGUV VCMKG UCOQ LCM  PCYC W [VMQYPKMC KVF 7 [VMQYPKM OQ G Vú HWPMELú YDQICEKè YGF WI  UYQKEJ RQVTGD 6C HWPMELC OWUK D[è WVYQTQPC Y UEJGOCEKG 5;5  2TGF WTWEJQOKGPKGO VGIQ UMT[RVW PCNG [ GUVCYKè RQ æEGPKG C RQOQEæ  RQNGEGPKC U[UJCU Q CU U[UFDC %4'#6' 14 4'2.#%' (70%6+10 XGTKH[AHWPEVKQP WUGTPCOG XCTEJCT RCUUYQTF XCTEJCT QNFARCUUYQTF XCTEJCT 4'6740 DQQNGCP +5 P DQQNGCP O KPVGIGT FKHHGT KPVGIGT KUFKIKV DQQNGCP KUEJCT DQQNGCP KURWPEV DQQNGCP
  • 29. 370 Część II Zarządzanie bazą danych FKIKVCTTC[ XCTEJCT   RWPEVCTTC[ XCTEJCT   EJCTCTTC[ XCTEJCT   $')+0 FKIKVCTTC[   EJCTCTTC[ CDEFGHIJKLMNOPQRSTUVWXYZ[#$%&'()*+,-./0123456789:;<  RWPEVCTTC[
  • 30.  !A   5RTCYF  E[ JCU Q LGUV VCMKG UCOQ LCM PCYC W [VMQYPKMC +( RCUUYQTF  WUGTPCOG 6*'0 TCKUGACRRNKECVKQPAGTTQT  *CU Q VCMKG UCOQ LCM PCYC W [VMQYPKMC  '0& +(  5RTCYF Y[UVúRQYCPKG OKPKOCNPGL F WIQ EK JCU C +( NGPIVJ RCUUYQTF   6*'0 TCKUGACRRNKECVKQPAGTTQT  & WIQ è JCU C OPKGLUC PK   '0& +(  5RTCYF  E[ JCU Q PKG LGUV C RTQUVG /Q PC RQFCè U QYPKM  Y[TCÎY C RQOQEæ MVÎTGIQ OQFW URTCYFCLæE[ PKG RQYQNK PC  CUVQUQYCPKG U ÎY MVÎTG Uæ D[V RTQUVG PC JCU Q +( RCUUYQTF +0 YKVCO  JCU Q  QTCENG  MQORWVGT CDEF 6*'0 TCKUGACRRNKECVKQPAGTTQT  *CU Q C RTQUVG  '0& +(  5RTCYF  E[ JCU Q CYKGTC RT[PCLOPKGL LGFPæ NKVGTú LGFPæ  E[HTú K LGFGP PCM KPVGTRWPME[LP[   5RTCYF Y[UVúRQYCPKG E[HT[ KUFKIKV(#.5' O  NGPIVJ RCUUYQTF  (14 K +0  .112 (14 L +0 O .112 +( UWDUVT RCUUYQTFL  UWDUVT FKIKVCTTC[K 6*'0 KUFKIKV647' )161 HKPFEJCT '0& +( '0& .112 '0& .112 +( KUFKIKV  (#.5' 6*'0 TCKUGACRRNKECVKQPAGTTQT  *CU Q RQYKPPQ CYKGTCè RT[PCLOPKGL LGFPæ åNKVGTú LGFPæ E[HTú K LGFGP PCM KPVGTRWPME[LP[  '0& +(   5RTCYF Y[UVúRQYCPKG NKVGT[ HKPFEJCT KUEJCT(#.5' (14 K +0 NGPIVJ EJCTCTTC[ .112 (14 L +0 O .112 +( UWDUVT RCUUYQTFL  UWDUVT EJCTCTTC[K 6*'0 KUEJCT647' )161 HKPFRWPEV '0& +( '0& .112 '0& .112 +( KUEJCT  (#.5' 6*'0 TCKUGACRRNKECVKQPAGTTQT  *CU Q RQYKPPQ CYKGTCè RT[PCLOPKGL LGFPæ åNKVGTú LGFPæ E[HTú K LGFGP PCM KPVGTRWPME[LP[ 
  • 31. Rozdział 10. Zabezpieczenie i monitorowanie bazy danych 371 '0& +(   5RTCYF Y[UVúRQYCPKG PCMW KPVGTRWPME[LPGIQ HKPFRWPEV KURWPEV(#.5' (14 K +0 NGPIVJ RWPEVCTTC[ .112 (14 L +0 O .112 +( UWDUVT RCUUYQTFL  UWDUVT RWPEVCTTC[K 6*'0 KURWPEV647' )161 GPFUGCTEJ '0& +( '0& .112 '0& .112 +( KURWPEV  (#.5' 6*'0 TCKUGACRRNKECVKQPAGTTQT  *CU Q RQYKPPQ CYKGTCè RT[PCLOPKGL LGFPæ åNKVGTú LGFPæ E[HTú K LGFGP PCM KPVGTRWPME[LP[  '0& +( GPFUGCTEJ  5RTCYF  E[ JCU Q TÎ PK UKú QF RQRTGFPKGIQ JCU C RT[PCLOPKGL   NKVGTCOK +( QNFARCUUYQTF  6*'0 TCKUGACRRNKECVKQPAGTTQT  5VCTG JCU Q OC YCTVQ è GTQYæ  '0& +(  9U[UVMQ LGUV Y RQTæFMW TGVWTP 647'  4'6740 647'  FKHHGT  NGPIVJ QNFARCUUYQTF  NGPIVJ RCUUYQTF  +( CDU FKHHGT   6*'0 +( NGPIVJ RCUUYQTF  NGPIVJ QNFARCUUYQTF 6*'0 O  NGPIVJ RCUUYQTF  '.5' O  NGPIVJ QNFARCUUYQTF  '0& +( FKHHGT  CDU FKHHGT  (14 K +0 O .112 +( UWDUVT RCUUYQTFK  UWDUVT QNFARCUUYQTFK 6*'0 FKHHGT  FKHHGT  '0& +( '0& .112 +( FKHHGT   6*'0 TCKUGACRRNKECVKQPAGTTQT  *CU Q RQYKPPQ TÎ PKè UKú RT[PCLOPKGL  PCMCOK  '0& +( '0& +(  9U[UVMQ LGUV Y RQTæFMW TGVWTP 647'  4'6740 647'  '0&   6GP UMT[RV OKGPKC RCTCOGVT[ FQO[ NPG FNC QRELK CTæFCPKC JCU COK  2CUUYQTF /CPCIGOGPV 6Q PCE[ G YU[UE[ W [VMQYPKE[ Y U[UVGOKG  DúFæ OKGNK WCMV[YPKQPæ QRELú CTæFCPKC JCU COK 2CUUYQTF  /CPCIGOGPV K DúFæ OKGNK WUVCYKQPG RQFCPG RQPK GL YCTVQ EK FQRÎMK  FNC W [VMQYPKMC PKG QUVCPKG WVYQTQP[ K RT[FKGNQP[  KPP[ RTQHKN RCTCOGVTCOK Q YCTVQ EKCEJ KPP[EJ NWD 70.+/+6'&
  • 32. 372 Część II Zarządzanie bazą danych #.6'4 241(+.' &'(#7.6 .+/+6 2#55914&A.+('A6+/'  2#55914&A)4#%'A6+/'  2#55914&A4'75'A6+/'  2#55914&A4'75'A/#: 70.+/+6'& (#+.'&A.1)+0A#66'/265  2#55914&A.1%-A6+/'  2#55914&A8'4+(;A(70%6+10 XGTKH[AHWPEVKQP Funkcję tę należy utworzyć w schemacie 5;5. Pierwsze trzy warunki KH tej funkcji słu ą do sprawdzenia, czy hasło jest takie samo jak nazwa u ytkownika, czy hasło składa się z mniej ni czterech znaków i czy hasło wy- stępuje w zbiorze określonych wyrazów (niedostateczna zło oność hasła). Warunki te mo na modyfikować, mo na tak e dodawać własne ustawienia. Na przykład, firmowe wytyczne zabezpieczenia aplikacji mogą wymagać stosowania haseł składających się przynajmniej z sześciu znaków. W celu wprowadzenia takiego warunku wystarczy zmodyfikować odpowiednią część pliku ultpwdmg.sql przed jego uruchomieniem. Następną, dłu szą częścią tej funkcji jest trójetapowe sprawdzanie zawartości ciągu znaków hasła. Zaakceptowanie proponowanego hasła jest mo liwe, jeśli zawiera ono przynajmniej jedną literę, jedną cyfrę oraz jeden znak interpunkcyjny. Tak e te usta- wienia mogą być edytowane, podobnie jak w przypadku wy ej opisanych warunków. Na przykład, jeśli stosowanie w hasłach znaków interpunkcyjnych nie jest konieczne, tę część kontroli propozycji hasła mo na po prostu pominąć. Kolejny fragment wy ej przedstawionej funkcji słu y do porównywania starego hasła z proponowanym nowym hasłem na zasadzie przyrównania znaku po znaku. Je eli wyra- enia te nie ró nią się na przynajmniej trzech miejscach, wtedy nowe hasło jest odrzucane. Weryfikacja dokonywana przez funkcję 8'4+(+;A(70%6+10 nie jest tak sprawna, jak pełniące tę samą rolę samą funkcje działające na poziomie systemu operacyjnego. Jeśli istnieje potrzeba wykorzystywania bardziej złożonego hasła i lepszego systemu jego sprawdzania, należy zmodyfikować procedurę 8'4+(;A(70%6+10 postępując we- dle wskazówek zaprezentowanych wcześniej. Ostatnie polecenie w powy szym skrypcie nie jest ju częścią funkcji. Jest to polecenie zmiany profilu CNVGT RTQHKNG zmieniające domyślny profil &'(#7.6. Zmiana profilu &' (#7.6 zachodzi dla ka dego u ytkownika bazy danych, który u ywa profilu &'(#7.6. Polecenie pokazane powy ej powoduje ustawienie następujących limitów: 60 dni czasu istnienia hasła, 10 dni tymczasowego okresu wa ności, 1800 dni bez mo liwości po- nownego zastosowania hasła i blokowanie konta po trzech nieudanych próbach logo- wania z automatycznym odblokowaniem konta po jednej minucie (1/1440 dnia). Oczy- wiście, powy sze parametry mogą się ró nić od parametrów wymaganych w danej aplikacji. Najwa niejsze jest ostatnie ustawienie 2#55914&A8'4+(;A(70%6+10. Określa ono, e funkcją weryfikującą jest funkcja utworzona przez skrypt utlpwdmg.sql 8'4+(;A (70%6+10.
  • 33. Rozdział 10. Zabezpieczenie i monitorowanie bazy danych 373 Ta funkcja będzie stosowana tylko w przypadku użytkowników korzystających z poda- nego profilu. Nale y zwrócić uwagę, e funkcja weryfikująca 8'4+(;A(70%6+10 nie daje dostępu do bazy danych ani nie modyfikuje adnych wartości bazy danych. Tak e ewentualne mody- fikacje tej funkcji nie powinny wymagać dostępu do bazy danych lub zmian bazy danych. Mo na zmieniać domyślny profil w celu zastosowania funkcji 8'4+(;A(70%6+10 bez zmiany parametrów uniewa nienia hasła. CNVGT RTQHKNG &'(#7.6 NKOKV 2#55914&A8'4+(;A(70%6+10 8'4+(;A(70%6+10 W razie zmiany profilu domyślnego &'(#7.6 nale y zapewnić wszystkim u ytkowni- kom tego profilu mo liwość korzystania z niego. Na przykład, jeśli u ytkownicy 5;5 oraz 5;56'/ wykorzystują profil &'(#7.6, zarządzanie ich hasłami odbywać by się mogło według określonych wy ej ustawień. W pewnych warunkach mogłoby to być niekorzyst- ne. W celu uproszczenia zarządzania profilami mo na utworzyć nowy profil i przydzielić go u ytkownikom, którzy nie są administratorami bazy danych oraz u ytkownikom nie- posiadającym dostępu do adnej aplikacji. Wadą tego rozwiązania jest konieczność pa- miętania o przydzielaniu odpowiedniego profilu wszystkim nowym u ytkownikom. Stan- daryzowanie procedur zarządzania ustawieniami dotyczącymi u ytkowników znacznie zwiększa szanse powodzenia wdro enia tego procesu. Nazwą funkcji weryfikacji haseł nie musi być 8'4+(;A(70%6+10. Z powy szego listingu wynika, e nazwa funkcji jest podawana jako parametr w poleceniu CNVGT RTQHKNG. Na- zwa 8'4+(;A(70%6+10 mo e być zastosowana prawie do ka dej innej funkcji. Warto sto- sować takie nazwy funkcji, aby wskazywały one ich znaczenie dla bazy danych. Na przykład opisywana wy ej funkcja mo e nosić nazwę 9'4;(+-#%,#A*#5.#A14#%.'. Takie postępowanie zwiększa prawdopodobieństwo, e inny administrator bazy danych nie będzie miał problemów z określeniem funkcji pełnionej przez dany program w aplikacji. Program narzędziowy Security Manager pakietu OEM umo liwia tworzenie profili. Mo e on posłu yć do łatwego definiowania limitów zarówno ogólnych zasobów kontroli profilu, jak i zasobów hasła. Na rysunku 10.6 pokazano okno z ogólnymi ustawieniami profilu, a na rysunku 10.7 — okno z ustawieniami dotyczącymi hasła. Dodatkowe opcje zarządzania hasłami są opisane w podrozdziale Szyfrowanie haseł zwiększa mo liwości kontroli. Wiązanie kont bazy danych z kontami hosta U ytkownicy uzyskują dostęp do bazy danych po wprowadzeniu poprawnej nazwy u ytkownika i hasła. Pewne mo liwości systemu operacyjnego pozwalają na zapewnie- nie dodatkowego poziomu identyfikacji u ytkownika. Mo na połączyć konto bazy danych z kontem systemu operacyjnego na tym samym serwerze. Dwie nazwy tych kont mogłyby ró nić się tylko prefiksem nazwy konta bazy danych. Prefiks ma wartość domyślną 125 ale mo e być ustawiony na inną wartość za pomocą parametru 15A#76*'06A24'(+: pliku bazy danych init.ora. Ustawienie jego war- tości na pusty łańcuch spowoduje brak prefiksu.
  • 34. 374 Część II Zarządzanie bazą danych Rysunek 10.6. Ogólne ustawienia profilu LIMITED_ PROFILE Rysunek 10.7. Ustawienia hasła profilu LIMITED_ PROFILE W razie zmiany wartości parametru 15A#76*'06A24'(+: na wartość różną od 125 , konta bazy danych mogą być stosowane albo jako konta zalogowania automatyczne- go, albo jako konta z dostępem za pomocą nazwy użytkownika i hasła. Nie jest moż- liwe wykorzystanie obydwóch tych metod naraz. Jeżeli prefiks identyfikacji ma war- tość 125 , wtedy można uzyskać dostęp do konta zarówno przez zalogowanie automatyczne, jak i za pomocą kombinacji nazwy użytkownika i hasła. W przypadku większości instalacji stosuje się prefiks 125 . Poni ej rozwa ono przykładowe konto systemu operacyjnego o nazwie (#4/'4. Odpo- wiadającą mu nazwą konta bazy danych dla tego u ytkownika jest 125 (#4/'4. Po zalo- gowaniu do swojego konta systemu operacyjnego u ytkownik (#4/'4 mo e uzyskać do- stęp do konta 125 (#4/'4 bez podawania hasła, jak pokazano ni ej. USNRNWU 
  • 35. Rozdział 10. Zabezpieczenie i monitorowanie bazy danych 375 Prawy ukośnik zastępuje kombinację nazwy u ytkownika i hasła, która normalnie była- by wymagana w celu uzyskania dostępu do konta. Możliwość zalogowania automatycznego nie jest dostępna na wszystkich platfor- mach. Wprowadzenie USNRNWU  w wierszu poleceń systemu NT DOS zwróci komuni- kat o błędzie ORA-01017. Konta mogą być tworzone wraz z hasłami. Kontynuując powy szy przykład, konto 125 (#4/'4 mo e być utworzone po wydaniu następującego polecenia: ETGCVG WUGT 125 (#4/'4 KFGPVKHKGF D[ *#5.1 FGHCWNV VCDNGURCEG 75'45 VGORQTCT[ VCDNGURCEG 6'/2 Nawet je eli hasło nie jest u ywane, jest ono ju określone. Dzięki temu jest mo liwe uzyskanie dostępu do konta 125 (#4/'4 bazy danych z innego systemu operacyjnego. Warunkiem jest znajomość hasła konta bazy danych. Poni ej przedstawiono przykła- dowe polecenie połączenia z kontem 125 (#4/'4 z konta innego systemu operacyjnego: USNRNWU QRU HCTOGTJCUNQ Występują dwa sposoby ominięcia powy szego problemu. Pierwszym z nich jest utwo- rzenie konta bez określonego hasła za pomocą klauzuli KFGPVKHKGF GZVGTPCNN[. Polece- nia potrzebne do tego celu pokazano poni ej. Dzięki temu nie zachodzi potrzeba poda- wania jawnego hasła konta przy utrzymaniu połączenia pomiędzy nazwą konta hosta a nazwą konta bazy danych. ETGCVG WUGT 125 (#4/'4 KFGPVKHKGF GZVGTPCNN[ FGHCWNV VCDNGURCEG 75'45 VGORQTCT[ VCDNGURCEG 6'/2 Zastosowanie klauzuli KFGPVKHKGF GZVGTPCNN[ powoduje sprawdzanie poprawności konta systemu operacyjnego wykorzystanego do uzyskania dostępu do bazy danych. Na- zwa konta systemu operacyjnego oraz nazwa konta bazy danych muszą być identyczne (oprócz prefiksu nazwy konta bazy danych). Drugą metodą jest utworzenie konta z niemo liwym hasłem. Metoda ta, opisana w pod- rozdziale Ustawianie niemo liwych haseł w dalszej części niniejszego rozdziału, unie- mo liwia u ytkownikowi zalogowanie się do konta bazy danych inaczej, ni przez konto systemu operacyjnego związane z kontem bazy danych. Istnieją sytuacje, gdy nie nale y zezwalać u ytkownikom na posiadanie konta 125 z hasłem mo liwym do wykorzystania. W razie potrzeby umo liwienia u ytkownikowi logowania się zarówno bezpośrednio z systemu operacyjnego, jak i z odległego konta przez program Oracle Net, zastosowanie konta z hasłem dostępu zdalnego mo e być ko- rzystne. Przykładowo, je eli programista jest połączony z bazą danych na poziomie systemu operacyjnego, podczas testowania skryptu mo e zaistnieć sytuacja, w której zacho- dzi jawne wyświetlenie jego hasła. Z oczywistych względów jest to niekorzystne. Problem ten rozwiązuje mo liwość zalogowania automatycznego dzięki prefiksowi 125 . Je eli ten
  • 36. 376 Część II Zarządzanie bazą danych programista łączy się za pomocą dostępu zdalnego (parametr 4'/16'A15A#76*'06 w pliku parametrów bazy danych nie jest ustawiony na wartość 647'), w celu uzyskania dostępu do bazy danych musi podać hasło. Wykorzystanie pliku haseł do identyfikacji W większości przypadków u ytkownicy posiadający uprawnienia DBA (administratora bazy danych) mogą być identyfikowani przez system operacyjny. Na przykład, w syste- mach UNIX członek grupy DBA w pliku /etc/group mo e połączyć się z bazą danych u ywając opcji EQPPGEV KPVGTPCN w bazie danych Oracle8 lub Oracle8i lub opcji EQPPGEV  CU U[UFDC w bazie danych Oracle9i. Opcja EQPPGEV KPVGTPCN nie jest ju dostępna w systemie Oracle9i Je eli u ytkownicy posiadający uprawnienia DBA nie mogą być identyfikowani przez system operacyjny, konieczne jest utworzenie i przechowywanie pliku haseł. Aby utworzyć plik haseł, nale y postępować według poni szych wskazówek: 1. Utworzyć plik haseł wykorzystując program narzędziowy ORAPWD. 14#29& (+.'PCYCARNKMW 2#55914&JCUNQ '064+'5OCMUANKEDCAW[VM Program ORAPWD jest programem narzędziowym generującym plik haseł. W czasie wykonywania programu ORAPWD nale y określić nazwę tworzonego pliku haseł razem z hasłem dostępu do 5;5 i +06'40#.. Parametr '064+'5 określa liczbę wpisów w pliku haseł. Trzeba pamiętać, e po utworzeniu pliku nie będzie mo na go ju rozszerzyć, zatem nale y ustawić du ą wartość parametru '064+'5. Przekroczenie limitu wpisów pliku haseł spowoduje wystąpienie komunikatu o błędzie ORA-1996. Podczas ponownego tworzenia pliku haseł konieczne jest powtórne przyznanie uprawnień 5;5&$# oraz 5;512'4. 2. Ustawić parametr inicjalizacji 4'/16'A.1)+0A2#55914&(+.' na wartość ':%.75+8' w pliku init.ora. Następnie nale y zamknąć i ponownie uruchomić bazę danych, co pozwoli na uaktywnienie zmienionego parametru. 3. Przyznać uprawnienia 5;512'4 oraz 5;5&$# ka demu u ytkownikowi, który ma zarządzać bazą danych. Odpowiednie polecenia przedstawiono w poni szych przykładach. Prawo 5;5&$# daje u ytkownikowi uprawnienia administratora bazy danych. Prawo 5;512'4 pozwala u ytkownikowi na wykonywanie operacji wspomagających działanie bazy danych. W celu przyznania u ytkownikowi prawa 5;512'4 lub 5;5&$# konieczne jest połączenie wewnętrzne. U ytkownicy uprawnieni powinni teraz pomyślnie łączyć się z bazą danych za pomocą polecenia podobnego do pokazanego poni ej: EQPPGEV IGQTIGOEJ"241&GUJGNQP #5 5;5&$# Polecenie TGXQMG mo e posłu yć do odebrania u ytkownikowi uprawnień systemowych 5;512'4 oraz 5;5&$#. Odpowiednie polecenie przedstawiono poni ej: TGXQMG 5;5&$# HTQO )GQTIG Przeglądanie u ytkowników posiadających uprawnienia systemowe 5;512'4 oraz 5;5&$# jest mo liwe po wykonaniu zapytania na tabeli 8 29(+.'A75'45. Tabela 8 29(+.'A75'45 posiada wartość 647' w kolumnie 5[U&$#, je eli u ytkownikowi przyznano prawo 5;5&$# oraz wartość 647' w kolumnie 5[U1RGT, je eli u ytkownikowi przyznano prawo 5;512'4.
  • 37. Rozdział 10. Zabezpieczenie i monitorowanie bazy danych 377 Ochrona za pomocą haseł Zarówno konta, jak i role mogą być chronione za pomocą haseł ustawianych w chwili ich tworzenia. Hasła mogą być modyfikowane za pomocą poleceń CNVGT WUGT oraz CNVGT TQNG. Początkowe hasło dla konta jest ustawiane podczas wykonywania polecenia ETGCVG WUGT, jak pokazano na poni szym listingu. W tym przykładzie jest tworzone konto 6*7/2'4 z początkowym hasłem 4$$ 6: ETGCVG WUGT 6*7/2'4 KFGPVKHKGF D[ 4$$ 6 Hasła kont powinny być zmieniane za pomocą polecenia CNVGT WUGT. Przykładowe po- lecenie CNVGT WUGT pokazano poni ej: CNVGT WUGT 6*7/2'4 KFGPVKHKGF D[ 019'*#5 1 W celu zmiany hasła mo na wykorzystywać polecenie SQL*Plus RCUUYQTF. Polecenie RCUUYQTF powoduje, e u ytkownik jest monitowany o podanie starego hasła, nowego hasła oraz o weryfikację nowego hasła. Wprowadzane wartości hasła nie są wyświetlane na ekranie. U ytkownik mo e zmienić swoje własne hasło w programie SQL*Plus za pomocą pole- cenia RCUUYQTF, czego przykład przedstawiono poni ej: RCUUYQTF W celu dokonania zmiany hasła innego u ytkownika po poleceniu RCUUYQTF nale y po- dać nazwę u ytkownika. RCUUYQTF ,#0' W odpowiedzi na prośbę systemu nale y wprowadzić nowe hasło u ytkownika ,#0' i dokonać jego weryfikacji. Polecenie RCUUYQTF jest bardzo u yteczne dla u ytkowników końcowych, poniewa znacznie upraszcza sposób zmiany haseł. Jeśli zastosowanie po- lecenia RCUUYQTF jest niemo liwe, wtedy trzeba posłu yć się następującym poleceniem: CNVGT WUGT 0#<9#7<;6-190+-# KFGPVKHKGF D[ 019'*#5.1 Posługiwanie się poleceniem CNVGT WUGT w celu zmiany hasła nie pozwala na wyko- rzystanie w pełni funkcji weryfikacji hasła przedstawionej wyżej. Firma Oracle zaleca stosowanie polecenia RCUUYQTF w celu zmiany hasła. Hasła dla ról są ustawiane w czasie tworzenia ról za pomocą polecenia ETGCVG TQNG. Nie jest konieczne ustawienie hasła dla roli. W razie ustawienia hasła dla roli trzeba określić, kiedy u ytkownik ma ją aktywować. Poni ej przedstawiono przykładowe po- lecenie powodujące utworzenie roli. ETGCVG TQNG #%%1706A%4'#614 KFGPVKHKGF D[ *'.2&'5-A10.; W celu zmiany hasła związanego z rolą mo na u yć polecenia CNVGT TQNG. Podobnie jak hasła, role mogą być równie identyfikowane zewnętrznie, co wymusza powiązanie pomiędzy nazwą konta hosta a nazwą roli. W odró nieniu od kont u ytkowników, mo li-
  • 38. 378 Część II Zarządzanie bazą danych we jest posiadanie roli bez haseł (domyślnie). Usuwanie hasła z roli przeprowadza się za pomocą klauzuli PQV KFGPVKHKGF, jak pokazano w poni szym przykładzie: CNVGT TQNG #%%1706A%4'#614 PQV KFGPVKHKGF Po wykonaniu tego polecenia rola #%%1706A%4'#614 nie będzie chroniona hasłem. Role mogą być związane z uprawnieniami systemu operacyjnego. Je eli taka mo liwość jest dostępna w systemie operacyjnym, wtedy mo na ją wywołać za pomocą klauzuli KFGPVKHKGF GZVGTPCNN[ polecenia CNVGT TQNG. Po uaktywnieniu roli system Oracle sprawdza ustawienia systemu operacyjnego w celu weryfikacji dostępu. Sposób modyfi- kacji roli w celu wykorzystania tej mo liwości zabezpieczenia przedstawiono w poni - szym przykładzie: CNVGT TQNG /#0#)'4 KFGPVKHKGF GZVGTPCNN[ W systemie VMS proces weryfikacji wykorzystuje identyfikatory uprawnień systemu operacyjnego. W większości systemów UNIX proces weryfikacji przebiega za pomocą pliku /etc/group. Aby zastosować go w ka dym systemie operacyjnym, parametr uru- chomienia bazy danych 15A41.'5 w pliku init.ora musi być ustawiony na wartość 647'. Kolejny przykład procesu weryfikacji dotyczy instancji bazy danych o nazwie NQECN w systemie UNIX. Plik serwera /etc/group mo e zawierać następujący wpis: QTCANQECNAOCPCIGTAF010'FQTC Ten wpis przyznaje rolę /#0#)'4 kontu nazwanemu &QTC. Sufiks AF oznacza domyślne przyznawanie tej roli po wystąpieniu zalogowania na koncie &QTC. Sufiks AC spowodo- wałby uaktywnienie tej roli z klauzulą YKVJ CFOKP QRVKQP. Sufiks ACF oznacza, e rola z klauzulą YKVJ CFOKP QRVKQP jest domyślną rolą u ytkownika. W celu przyznania danej roli większej liczbie u ytkowników nale y dołączyć do pliku etc/group dodatkowe na- zwy tych u ytkowników. Poni ej przedstawiono stosowny przykład: QTCANQECNAOCPCIGTAF010'FQTCLWF[ Zastosowanie tej opcji spowoduje uaktywnianie wszystkich ról w bazie przez system operacyjny. Uprawnienia obiektowe Uprawnienia obiektowe (ang. object-level privileges) dają u ytkownikowi dostęp do danych, których nie jest posiadaczem. Zarządzanie uprawnieniami mo e być znacznie łatwiejsze dzięki stosowaniu ról. Mo liwe jest równie bezpośrednie nadawanie upraw- nień. Zastosowanie ich jest konieczne w niektórych okolicznościach. Uprawnienia tworzy się za pomocą polecenia ITCPV i są one rejestrowane w słowniku danych. U ytkownikom mo na przyznać dostęp do tabel, perspektyw, sekwencji, jak równie do ich synonimów a tak e mo liwość wykonywania procedur, funkcji, pakie- tów i typów. Uprawnienia, które mogą być przyznane w odniesieniu do ró nych obiektów wyszcze- gólniono w tabeli 10.4.
  • 39. Rozdział 10. Zabezpieczenie i monitorowanie bazy danych 379 Tabela 10.4. Dostępne uprawnienia obiektowe Prawo Przyznane możliwości #.6'4 Pozwala na zmianę właściwości obiektu &'$7)
  • 40. Pozwala na włączenie usuwania błędów z programu Java (przyznawane wraz z rolą ,#8#&'$7)24+8). &'.'6' Pozwala na usuwanie wierszy z obiektu. &'37'7'
  • 41. Pozwala na usuwanie wiadomości z kolejki (u ywane wraz z pakietem &$/5A#3). '037'7'
  • 42. Pozwala na dodawanie wiadomości do kolejki (u ywane wraz z pakietem &$/5A#3). ':'%76' Pozwala na uruchamianie funkcji, pakietu, procedury, biblioteki lub typu. +0&': Pozwala na tworzenie indeksu na tabeli. +05'46 Pozwala na wstawianie wierszy do obiektu. To prawo mo e być przyznane dla określonych kolumn obiektu. 10 %1//+6 Pozwala na tworzenie odświe anych na ądanie perspektyw materializowanych 4'(4'5* dla określonej tabeli. 37'4; 4'94+6' Pozwala na utworzenie perspektywy materializowanej w celu przepisania zapytania z wykorzystaniem określonej tabeli. 4'#& Pozwala na uzyskanie dostępu do katalogu. 4'('4'0%' Pozwala na tworzenie kluczy obcych, które odwołują się do tabeli. 5'.'%6 Pozwala na wykonywanie zapytań na obiekcie. 70&'4 Pozwala na tworzenie podperspektywy lub podtypu danej perspektywy lub typu. 72&#6' Pozwala na modyfikowanie wierszy w obiekcie. To prawo mo e być przyznane dla określonych kolumn obiektu. 94+6' Pozwala na zapisanie pliku w katalogu. W tabeli 10.4 niektóre przywileje oznaczone gwiazdką (
  • 43. ). Są one dostępne jedynie wraz z pakietem, który wymieniono w ich opisie. Klauzula YKVJ ITCPV QRVKQP pozwala u ytkownikowi na przekazywanie uprawnień do obiektów bazodanowych. Odpowiedni przykład znajduje się poni ej, na listingu pro- gramu 53.
  • 44. 2NWU. W tym przypadku u ytkownik o nazwie 6*7/2'4 przyznaje u ytkow- nikowi /%)4')14 prawo dostępu do tabeli o nazwie '/2.1;''. Przyznawanymi upraw- nieniami są 5'.'%6 i prawo częściowej modyfikacji 72&#6', dodano równie klauzulę przekazywania uprawnień YKVJ ITCPV QRVKQP. Następnie u ytkownik /%)4')14 przy- znaje te uprawnienia u ytkownikowi o nazwie ,(+5*'4. ITCPV UGNGEV WRFCVG 'ORNQ[GGA0COG #FFTGUU QP '/2.1;'' VQ /%)4')14 YKVJ ITCPV QRVKQP EQPPGEV /%)4')14(#4/'4 ITCPV UGNGEV QP 6*7/2'4'/2.1;'' VQ ,(+5*'4 Przyznawanie uprawnień wraz z opcją PUBLIC powoduje udostępnienie tych upraw- nień wszystkim użytkownikom bazy danych.
  • 45. 380 Część II Zarządzanie bazą danych Je eli '/2.1;'' jest tabelą partycjonowaną, nie mo na przyznać dostępu z uprawnie- niem 5'.'%6 dotyczącym tylko jednej partycji tej tabeli. Jednak mo na utworzyć per- spektywę, która wybiera dane tylko z jednej partycji a następnie przyznawać innym u ytkownikom dostęp z prawem 5'.'%6 do tej perspektywy. Co prawda, perspektywa taka stanie się dodatkowym obiektem wymagającym zarządzania, ale jest to dodatkowy sposób zabezpieczenia danych na poziomie partycji. Zarządzanie uprawnieniami mo e szybko stać się zadaniem czasochłonnym. Ka demu u ytkownikowi trzeba przyznać odpowiednie uprawnienia dla ka dego obiektu w apli- kacji bazy danych. Przykładowo, w przypadku małej aplikacji, w skład której wchodzi 20 tabel i 30 u ytkowników, zachodzi potrzeba zarządzania co najmniej 600 uprawnie- niami (20 tabel razy 30 u ytkowników). Po wprowadzeniu ról zarządzanie uprawnieniami stało się du o łatwiejsze. Role mo na określić jako grupy uprawnień. W ten sposób role są przyznawane u ytkownikom, co bardzo usprawnia proces zarządzania uprawnieniami. Poni szy listing przedstawia przykład wykorzystania ról. W tym przypadku tworzone są dwie role. Pierwszej roli #22.+%#6+10A75'4 przyznawane jest prawo systemowe %4'#6' 5'55+10. U ytkownik, któremu ta rola została przyznana, mo e zalogować się do bazy danych. Drugiej roli, którą jest &#6#A'064;A%.'4-, są przyznawane uprawnienia do wy- konywania pewnych operacji na tabelach. ETGCVG TQNG #22.+%#6+10A75'4 ITCPV %4'#6' 5'55+10 VQ #22.+%#6+10A75'4 ETGCVG TQNG &#6#A'064;A%.'4- ITCPV UGNGEV KPUGTV QP 6*7/2'4'/2.1;'' VQ &#6#A'064;A%.'4- ITCPV UGNGEV KPUGTV QP 6*7/2'46+/'A%#4&5 VQ &#6#A'064;A%.'4- ITCPV UGNGEV KPUGTV QP 6*7/2'4&'2#46/'06 VQ &#6#A'064;A%.'4- Poszczególne role mogą być przyznawane innym rolom. Na przykład mo na przyznać rolę #22.+%#6+10A75'4 roli &#6#A'064;A%.'4-, co przedstawiono w poni szym przykładzie: ITCPV #22.+%#6+10A75'4 VQ &#6#A'064;A%.'4- Tak e taka rola mo e być przyznana u ytkownikowi. Istnieje mo liwość jej dynamicz- nej aktywacji lub dezaktywacji podczas sesji u ytkownika za pomocą polecenia UGV TQNG. ITCPV &#6#A'064;A%.'4- VQ /%)4')14 Program narzędziowy Security Manager pakietu OEM umo liwia dokonanie wyboru określonego u ytkownika lub roli w celu przyznania im uprawnień obiektowych. Następ- nie za pomocą okna Object Privileges (Uprawnienia obiektowe) wybiera się uprawnie- nia obiektowe. Na przykładzie z rysunku 10.8 przedstawiono sposób przyznania u yt- kownikowi 6*7/2'4 uprawnień 5'.'%6, +05'46 oraz 72&#6' dotyczących tabeli .1%#6+10. Role i uprawnienia systemowe (takie jak %4'#6' 6#$.') mogą być przyznawane u yt- kownikom z mo liwością dalszego przekazywania ich innym u ytkownikom. W przy- padku roli w tym celu wykorzystywana jest klauzula YKVJ CFOKP QRVKQP. Poni szej przed- stawiono przykładowy sposób przekazywania uprzednio utworzonej roli &#6#A'064;A %.'4- u ytkownikowi $2166'4, wraz z prawem do zarządzania tą rolą. ITCPV &#6#A'064;A%.'4- VQ $2166'4 YKVJ CFOKP QRVKQP
  • 46. Rozdział 10. Zabezpieczenie i monitorowanie bazy danych 381 Rysunek 10.8. Przyznanie u ytkownikowi uprawnień obiektowych Dzięki temu prawu u ytkownik $2166'4 mo e przyznawać tę rolę (za pomocą polecenia ITCPV) lub te odbierać ją (stosując polecenie TGXQMG) innym u ytkownikom. Mo e on równie tę rolę usunąć. Użytkownicy, którzy poprzez role mają uprawnienia do dokonywania pewnych czynno- ści na tabeli, nie mogą tworzyć perspektyw lub procedur na bazie tej tabeli. Jest to potrzebne ograniczenie, ponieważ przyznania dokonane przez rolę są ważne tylko wtedy, gdy użytkownik jest zalogowany i gdy rola jest aktywna. Tworzenie perspektyw na tabelach przez użytkowników, którzy nie są ich właścicielami, wymaga bezpośred- niego przyznania uprawnień do takich tabelach. Dynamiczna natura ról jest bardzo przydatna do ograniczania uprawnień u ytkowników. Je eli uaktywnienie roli (za pomocą polecenia UGV TQNG) następuje w czasie, gdy u yt- kownik uruchamia aplikację, a jej dezaktywowanie następuje po opuszczeniu aplikacji, to u ytkownik mo e korzystać z uprawnień tej roli tylko wtedy, gdy aplikacja jest u ywana. Na przykład, po zalogowaniu u ytkownika /%)4')14 do aplikacji mo e nastąpić wyko- nanie poni szego polecenia. UGV TQNG &#6#A'064;A%.'4- Kiedy ten u ytkownik opuszcza aplikację, polecenie: UGV TQNG 010' dezaktywuje ka de prawo, które było przyznane przez tę rolę. Polecenie TGXQMG słu y do odbierania uprawnień i ról u ytkownikom. Mo na odbierać albo niektóre uprawnienia u ytkownika (przez ich jawne wypisanie), albo wszystkie uprawnienia u ytkownika (za pomocą słowa kluczowego CNN). Poni ej przedstawiono
  • 47. 382 Część II Zarządzanie bazą danych przykład polecenia odbierającego określone uprawnienie (&'.'6') na tabeli '/2.1;'' jednemu u ytkownikowi. Uprawnienia drugiego u ytkownika są odbierane całkowicie. TGXQMG FGNGVG QP '/2.1;'' HTQO 2'6'4 TGXQMG CNN QP '/2.1;'' HTQO /%)4')14 Kolejny przykład przedstawia polecenie odbierające rolę #%%1706A%4'#614 z konta u yt- kownika o nazwie *'.2&'5-: TGXQMG #%%1706A%4'#614 HTQO *'.2&'5- Konta u ytkowników mogą być całkowicie usuwane za pomocą polecenia: FTQR WUGT 0#<9#-106# ECUECFG W razie zastosowania parametru ECUECFG kasowanie uprawnień usuwanych kont nie jest wymagane. Polecenie TGXQMG jest wykorzystywane w pokazany wy ej sposób głównie podczas zmiany statusu u ytkowników lub kiedy aplikacje są przenoszone z jednego środowiska (np. test akceptacyjny) do drugiego (zastosowanie produkcyjne). Istnieje wa na ró nica pomiędzy odebraniem uprawnień przyznanych z klauzulą przy- znawania YKVJ ITCPV QRVKQP a tymi, które przyznano z klauzulą zarządzania YKVJ CF OKP QRVKQP. Rozwa ono przykładową sytuację, w której u ytkownik 6*7/2'4 przyznaje u ytkownikowi /%)4')14 prawo dostępu do tabeli '/2.1;'' wraz z klauzulą YKVJ ITCPV QRVKQP: ITCPV 5'.'%6 QP '/2.1;'' VQ /%)4')14 YKVJ ITCPV QRVKQP U ytkownik /%)4')14 mo e teraz przekazać to prawo u ytkownikowi $2166'4, równie z klauzulą YKVJ ITCPV QRVKQP: ITCPV 5'.'%6 QP 6*7/2'4'/2.1;'' VQ $2166'4 YKVJ ITCPV QRVKQP Je eli u ytkownik 6*7/2'4 odbierze wcześniej przyznane uprawnienia u ytkownikowi /%)4')14: TGXQMG 5'.'%6 QP '/2.1;'' HTQO /%)4')14 wtedy u ytkownik $2166'4, który otrzymał prawo dostępu do tabeli '/2.1;'' od u yt- kownika /%)4')14, nie mo e ju posiadać uprawnień do tabeli '/2.1;'', poniewa u ytkownik /%)4')14 tak e nie ma ju dostępu do tej tabeli. Odbieranie uprawnień przyznanych za pomocą klauzuli YKVJ CFOKP QRVKQP funkcjonuje inaczej. Kontynuując powy szy przykład, je eli u ytkownik /%)4')14 otrzyma prawo systemowe z opcją YKVJ CFOKP QRVKQP, wtedy mo e przekazać takie prawo u ytkowni- kowi $2166'4. Je eli nastąpi odebranie prawa systemowego u ytkownikowi /%)4')14, wtedy u ytkownik $2166'4 je zachowa. Wykazy uprawnień Informacje na temat przyznanych uprawnień są składowane w słowniku danych. Dostęp do tych danych mo na uzyskać za pomocą perspektyw słownika danych.
  • 48. Rozdział 10. Zabezpieczenie i monitorowanie bazy danych 383 Perspektywy słownika danych wyszczególnione w tabeli 10.5 słu ą do wykazywania uprawnień, które przyznano w bazie danych. Dostępne są równie perspektywy na po- ziomie u ytkownika. Tabela 10.5. Perspektywy słownika danych związane z uprawnieniami Perspektywa słownika danych Zawartość &$#A41.'5 Nazwy ról i ich status hasła. &$#A41.'A24+85 U ytkownicy, którym przyznano role. &$#A5;5A24+85 U ytkownicy, którym przyznano uprawnienia systemowe. &$#A6#$A24+85 U ytkownicy, którym przyznano uprawnienia na tabelach. &$#A%1.A24+85 U ytkownicy, którym przyznano uprawnienia na kolumnach. 41.'A41.'A24+85 Role, które przyznano innym rolom. 41.'A5;5A24+85 Uprawnienia systemowe, które przyznano rolom. 41.'A6#$A24+85 Uprawnienia tabeli, które przyznano rolom. Na przykład, istnieje mo liwość otrzymania informacji dotyczących uprawnień syste- mowych przyznanych poszczególnym rolom. UGNGEV 4QNG 
  • 49. 0CYC TQNK
  • 50.  2TKXKNGIG 
  • 51. 2TCYQ U[UVGOQYG
  • 52.  #FOKPA1RVKQP 
  • 53. %[ QUVC C RT[PCPC QRELC CFOKP!
  • 54.  HTQO 41.'A5;5A24+85 Aby otrzymać listę przyznanych przywilejów dotyczących tabel, konieczne jest szuka- nie dwóch typów uprawnień: uprawnień przyznanych u ytkownikom bezpośrednio oraz przyznanych za pomocą ról. W celu przeglądania uprawnień przyznanych bezpośrednio, nale y wykonać zapytanie na perspektywie &$#A6#$A24+85. Poni ej przedstawiono odpowiedni przykład. UGNGEV )TCPVGG 
  • 55. 1FDKQTEC RT[PCPKC
  • 56.  1YPGT 
  • 57. 9 C EKEKGN QDKGMVW
  • 58.  6CDNGA0COG 
  • 59. 0CYC QDKGMVW
  • 60.  )TCPVQT 
  • 61. 7 [VMQYPKM MVÎT[ FQMQPC RT[PCPKC
  • 62.  2TKXKNGIG 
  • 63. 2T[PCPG RTCYQ
  • 64.  )TCPVCDNG 
  • 65. %[ QUVC C RT[PCPC QRELC CFOKP!
  • 66.  HTQO &$#A6#$A24+85 Aby przeglądać uprawnienia tabel przyznawane przez rolę, nale y odnaleźć rekordy da- nego u ytkownika w perspektywie &$#A41.'A24+85 i porównać je z uprawnieniami tabel roli. Są one wykazane w perspektywie 41.'A6#$A24+85. UGNGEV &$#A41.'A24+85)TCPVGG 
  • 67. 1FDKQTEC RT[PCPKC
  • 68.  41.'A6#$A24+851YPGT 
  • 69. 9 C EKEKGN QDKGMVW
  • 70.  41.'A6#$A24+856CDNGA0COG 
  • 71. 0CYC QDKGMVW
  • 72.  41.'A6#$A24+852TKXKNGIG 
  • 73. 2T[PCPG RTCYQ
  • 74.  41.'A6#$A24+85)TCPVCDNG 
  • 75. %[ QUVC C RT[PCPC QRELC CFOKP!
  • 76.  HTQO &$#A41.'A24+85 41.'A6#$A24+85 YJGTG &$#A41.'A24+85)TCPVGFA4QNG  41.'A6#$A24+854QNG CPF &$#A41.'A24+85)TCPVGG  PCYC W [VMQYPKMC 
  • 77. 384 Część II Zarządzanie bazą danych Takie zapytanie wyszuka uprawnienia tabel przyznane roli dla danego u ytkownika. Aby przeglądać limity profili występujące w bie ącej sesji, mo na zastosować zapyta- nie na perspektywie 75'4A4'5174%'A.+/+65. Jej kolumnami są: 4GUQWTEGA0COG — nazwa zasobu (np. 5'55+10A2'4A75'4); .KOKV — określony limit dotyczący danego zasobu. Perspektywa 75'4A2#55914&A.+/+65 opisuje parametry profilu hasła dla u ytkownika. Posiada ona te same kolumny, co perspektywa 75'4A4'5174%'A.+/+65. Nie istnieje adna wersja DBA perspektywy 75'4A2#55914&A.+/+65. Jest ona ściśle ogra- niczona do bie ącej sesji u ytkownika. Aby zobaczyć koszt związany z ka dym dostęp- nym zasobem, nale y wykonać zapytanie na perspektywie 4'5174%'A%156. Administra- torzy baz danych mogą uzyskiwać dostęp do perspektywy &$#A241(+.'5, co umo liwia przeglądanie limitów zasobów dla wszystkich profili. Kolumna 4GUQWTEGA6[RG per- spektywy &$#A241(+.'5 wskazuje, czy profil zasobu jest profilem 2#55914& czy -'40'.. Istnieją jeszcze dwie perspektywy składające się z pojedynczej kolumny, które słu ą do przeglądania uaktywnionych dla bie ącej sesji uprawnień i ról. Są to: 5'55+10A24+85 — kolumna 2TKXKNGIG wykazuje wszystkie uprawnienia systemowe dostępne w sesji, niezale nie od tego, czy są one przyznane bezpośrednio, czy przez role; 5'55+10A41.'5 — kolumna 4QNG wykazuje wszystkie role, które są bie ąco aktywne w sesji; 5'55+10A24+85 oraz 5'55+10A41.'5 są dostępne dla wszystkich u ytkowników. Ograniczanie dostępnych poleceń za pomocą tabel Product User Profile Program SQL*Plus zapewnia dodatkowy poziom zabezpieczenia — poszczególne pole- cenia mogą być dezaktywowane dla określonych u ytkowników. W ten sposób u yt- kownicy z uprawnieniem 72&#6' dotyczącym danej tabeli mogą nie mieć mo liwości łączenia się z poziomu wiersza poleceń programu SQL*Plus w celu modyfikowania zawartości tej tabeli w niekontrolowany sposób. W ten sposób administratorzy baz da- nych uzyskują metodę uniemo liwiania u ytkownikom uzyskiwania dostępu do systemu operacyjnego z programu SQL*Plus (za pomocą polecenia JQUV). Jest to u yteczne ograniczenie, szczególnie jeśli aplikacja daje mo liwość uzyskania dostępu do progra- mu SQL*Plus i dostęp u ytkowników do systemu operacyjnego jest niepo ądany. Oprócz odebrania u ytkownikom mo liwości stosowania polecenia JQUV z programu SQL*Plus, mo na równie odebrać im mo liwość wykorzystywania polecenia EQPPGEV. Eliminacja dostępu do tych dwóch poleceń zmusi u ytkowników do posługiwania się swoimi kontami. Jeśli zastosowano omawiane zabezpieczenia, wyniki wydania powy - szych poleceń wyglądają następująco:
  • 78. Rozdział 10. Zabezpieczenie i monitorowanie bazy danych 385 53. JQUV +PXCNKF EQOOCPF JQUV 53. EQPPGEV U[UVGOOCPCIGT +PXCNKF EQOOCPF EQPPGEV W ka dym przypadku wyświetlany jest komunikat invalid command (nieprawidłowe polecenie). U ytkownik mo e korzystać z aplikacji jedynie z poziomu swojego konta. W celu uzyskania takiego poziomu zabezpieczenia trzeba utworzyć tabele Product User Profile. Skrypt słu ący do ich tworzenia nosi nazwę pupbld.sql i znajduje się w podka- talogu /sqlplus/admin katalogu podstawowego oprogramowania Oracle. Ten skrypt two- rzy kilka tabel i perspektyw i powinien być uruchamiany z konta 5;56'/. Począwszy od Oracle8i skrypt ten uruchamiany jest automatycznie w momencie tworzenia bazy danych. Dla SQL*Plus uzyskanie dostępu do najwa niejszej tabeli jest mo liwy za pomocą sy- nonimu 241&7%6A75'4A241(+.'. Kolumny o kluczowym dla celów zabezpieczeń znacze- niu wykazano w tabeli 10.6. Aby utworzyć zabezpieczenie o po ądanym poziomie, na- le y wprowadzić rekordy do tej tabeli. Tabela 10.6. Kolumny w tabeli PRODUCT_USER_PROFILE Nazwa kolumny Opis 2TQFWEV Ustawić na SQL*Plus. Nazwa musi być zapisana w odpowiedni sposób, z uwzględnieniem małych i du ych liter. 7UGTKF Nazwy u ytkowników, których polecenia są dezaktywowane, mają być zapisane du ymi literami. #VVTKDWVG Nazwa dezaktywowanego polecenia musi być zapisana du ymi literami. Dezaktywowanie polecenia 5'6 w programie SQL*Plus dezaktywuje równie polecenia UGV TQNG oraz UGV VTCPUCEVKQP. %JCTA8CNWG Ustawić na &+5#$.'& zapisując to słowo du ymi literami. W celu dezaktywacji ról mo na równie u yć tabel 2TQFWEV 7UGT 2TQHKNGU. W tym celu nale y dokonać ustawienia kolumny #VVTKDWVG na 41.'5 i umieścić nazwę roli w kolum- nie %JCTA8CNWG. Dezaktywacja ról jest zwykle wykonywana wraz z dezaktywacją pole- cenia UGV (patrz tabela 10.6). Zabezpieczenie hasła podczas logowania Podczas łączenia się z komputera klienta do serwera bazy danych lub z jednej bazy da- nych do drugiej przez powiązanie baz danych, system Oracle domyślnie wysyła wpro- wadzone hasło w formie niezaszyfrowanej. W systemie Oracle mo na wymusić szyfro- wanie wartości hasła przed jego wysłaniem. Aby uaktywnić szyfrowanie hasła, nale y ustawić następujące parametry: dla komputerów klienckich parametr 14#A'0%4;26A.1)+0 w pliku sqlnet.ora na wartość 647' ; dla serwerów parametr &$.+0-A'0%4;26A.1)+0 w pliku init.ora na wartość 647'. Po ustawieniu tych parametrów nale y wyłączyć i ponownie uruchomić bazę danych. Od tego momentu hasła będą wysyłane od klienta do serwera w formie zaszyfrowanej.
  • 79. 386 Część II Zarządzanie bazą danych Szyfrowanie haseł zwiększa możliwości kontroli Znajomość sposobu szyfrowania i ustawiania hasła przez bazę danych umo liwia admi- nistratorom baz danych wykonywanie pewnych zadań, które bez tej znajomości nie byłyby mo liwe do realizacji. Do tych zadań zalicza się ustawianie niemo liwych haseł oraz tymczasowe przejmowanie konta innego u ytkownika. Zagadnienia te przedsta- wiono w kolejnych podrozdziałach. Składowanie haseł Po określeniu hasła dla konta u ytkownika lub roli zaszyfrowana wersja tego hasła jest przechowywana w słowniku danych. Ustawienie tego samego hasła dla dwóch ró nych kont spowoduje zaszyfrowanie tych haseł w odmienny sposób. Dla wszystkich haseł za- szyfrowana wartość składa się z 16 znaków i zawiera cyfry oraz du e litery. Poprawność wprowadzanych haseł podczas weryfikacji u ytkownika jest sprawdzana w następujący sposób: wpisane przez u ytkownika hasło jest szyfrowane i wygenero- wany szyfr jest porównywany z szyfrem ze słownika danych dla tego konta. Je eli te dwie wartości sobie odpowiadają, wtedy hasło uznawane jest za poprawne i autoryzacja kończy się powodzeniem. Ustawianie niemożliwych haseł Znajomość sposobu zapamiętywania haseł przez bazę danych jest wa na, poniewa umo liwia wykorzystanie następnych mo liwości zabezpieczania konta. Polega to na określeniu szyfru hasła, a nie samego hasła. Mo na spowodować wygenerowanie szyfru, który nie spełnia reguł formatu dla szyfrowanych haseł. W ten sposób zalogowanie się do takiego konta byłoby niemo liwe, poniewa adne hasło nie mogłoby wygenerować tego nieprawidłowego szyfru. Poni ej rozwa ono przykład zapytania wybierającego konta i zaszyfrowane hasła. W tym przypadku zapytanie wybiera kolumny 7UGTPCOG (nazwa u ytkownika) oraz 2CUUYQTF (hasło) z perspektywy &$#A75'45. UGNGEV 7UGTPCOG 
  • 80. 0CYC W [VMQYPKMC
  • 81.  2CUUYQTF 
  • 82. <CU[HTQYCPG JCU Q
  • 83.  HTQO &$#A75'45 YJGTG 7UGTPCOG KP /%)4')14  6*7/2'4  125 (#4/'4  75'40#/' 2#55914&  /%)4')14 #&&%%''&(# 6*7/2'4 (&'%$$#$ 125 (#4/'4 ((((%$&'
  • 84. Rozdział 10. Zabezpieczenie i monitorowanie bazy danych 387 Nale y zwrócić uwagę, e ka de z zaszyfrowanych haseł na powy szym listingu posiada 16 znaków. Samo hasło nie jest składowane w słowniku danych, tylko jego szyfr. Mo na zatem się zastanawiać, w jaki sposób program Import rozpoznaje hasła, skoro w przy-padku wykorzystania opcji importu Full (Pełny) hasła są importowane w poprawny sposób. Program Import wykonuje polecenia SQL. Podczas importu z opcją Full program Im- port wykonuje nieudokumentowaną wersję polecenia ETGCVG WUGT. Importowanie u yt- kownika /%)4')14 z bazy danych pokazanej na powy szym listingu wygenerowałoby następujące polecenie ETGCVG WUGT: ETGCVG WUGT /%)4')14 KFGPVKHKGF D[ 8#.7'5 #&&%%''&(#  A zatem program Import stosuje nieudokumentowaną klauzulę XCNWGU wewnątrz klau- zuli KFGPVKHKGF D[ w celu określenia zaszyfrowanego hasła u ytkownika, które je tworzy. Nie jest to sytuacja wyjątkowa. Mo na stosować to samo polecenie do ustawienia szy- fru dla ka dego konta. Je eli ustawiony szyfr nie spełnia reguł szyfrowania (16 znaków, wszystkie występujące litery mają być du e), nie jest mo liwe jego dopasowanie pod- czas identyfikacji u ytkownika. Rezultatem zastosowania takiego hasła, którego szyfr jest nieprawidłowy, jest konto dostępne tylko z poprawnego konta systemu operacyjnego na serwerze. Poni ej przedstawiono przykładowy listing, gdzie szyfr ustawiono na wy- ra enie PQ YC[ . Następnie jest wykonywane zapytanie na perspektywie &$#A75'45. CNVGT WUGT 125 (#4/'4 KFGPVKHKGF D[ 8#.7'5 PQ YC[  UGNGEV 7UGTPCOG 
  • 85. 0CYC W [VMQYPKMC
  • 86.  2CUUYQTF 
  • 87. <CU[HTQYCPG JCU Q
  • 88.  HTQO &$#A75'45 YJGTG 7UGTPCOG KP /%)4')14  6*7/2'4  125 (#4/'4  75'40#/' 2#55914&  /%)4')14 #&&%%''&(# 6*7/2'4 (&'%$$#$ 125 (#4/'4 PQ YC[ Teraz uzyskanie dostępu do konta 125 (#4/'4 jest niemo liwe z wyjątkiem dostępu przez konto (#4/'4 na serwerze. Nawet wtedy jest ono dostępne jedynie przez zalogo- wanie automatyczne z wykorzystaniem prawego ukośnika . Hasła niemo liwe są u y- teczne w celu blokowania kont nieposiadających w nazwie prefiksu 125 , do których nie powinno być mo liwości bezpośredniego zalogowania. Przykładem takiego konta jest konto 5;5. Przejmowanie konta innego użytkownika Ze względu na mo liwość ustawiania zaszyfrowanych haseł, mo na tymczasowo prze- jąć jakiekolwiek konto i następnie ustawić je z powrotem na jego oryginalne hasło bez znajomości hasła konta. Mo liwość tymczasowego przejmowania konta innego u yt- kownika jest bardzo u yteczna podczas testowania aplikacji lub wykrywania i rozwią- zywania problemów ju podczas produkcyjnego jej wykorzystywania.
  • 89. 388 Część II Zarządzanie bazą danych Tymczasowe przejmowanie konta innego u ytkownika wymaga wykonania następują- cych czynności: 1. Wykonanie zapytania na perspektywie &$#A75'45 w celu określenia aktualnego zaszyfrowanego hasła dla danego konta. 2. Wygenerowanie polecenia CNVGT WUGT, które będzie konieczne w celu ponownego ustawienia zaszyfrowanego hasła na odpowiednią wartość. 3. Zachowanie w pliku buforowym polecenia CNVGT WUGT. 4. Zmiana hasła u ytkownika. 5. Uzyskanie dostępu do konta u ytkownika i przeprowadzenie zamierzonych czynności. 6. Uruchomienie pliku zawierającego polecenie CNVGT WUGT w celu ponownego ustawienia zaszyfrowanego hasła u ytkownika na jego oryginalną wartość. Ten proces jest wykonywany automatycznie za pomocą skryptu SQL*Plus. Skrypt ten generuje polecenia konieczne do ponownego ustawienia konta u ytkownika. 4'/
  • 90. DGEQOGACPQVJGTAWUGTUSN 4'/
  • 91. 4'/
  • 92. 6GP UMT[RV IGPGTWLG RQNGEGPKC MQPKGEPG Y EGNW 4'/
  • 93. V[OECUQYGIQ RTGLúEKC MQPVC KPPGIQ W [VMQYPKMC 4'/
  • 94. 4'/
  • 95. 5MT[RV OWUK D[è WTWEJQOKQP[ MQPVC &$# 4'/
  • 96. 4'/
  • 97. <OKGPPC YGL EKQYC PCYC W [VMQYPKMC RTGLOQYCPGIQ MQPVC 4'/
  • 98. 4'/
  • 99. 'VCR[   QTC  Y[MQPCL CR[VCPKG PC RGTURGMV[YKG &$#A75'45 4'/
  • 100. 9[IGPGTWL RQNGEGPKG #.6'4 75'4 MVÎTG DúFKG MQPKGEPG FQ 4'/
  • 101. RQPQYPGIQ WUVCYKGPKC JCU C PC LGIQ DKG æEæ YCTVQ è 4'/
  • 102. UGV RCIGUKG  HGGFDCEM QHH XGTKH[ QHH GEJQ QHH VGTOQWV QHH 4'/
  • 103. 4'/
  • 104. 7VYÎT RNKM Q PCYKG TGUGVUSN FQ VQ RTGEJQYCPKC Y[IGPGTQYCP[EJ 4'/
  • 105. RQNGEG  4'/
  • 106. URQQN TGUGVUSN 4'/
  • 107. 4'/
  • 108. 9[DKGT CU[HTQYCPG JCU Q RGTURGMV[Y[ &$#A75'45 4'/
  • 109. 5'.'%6 CNVGT WUGT  KFGPVKHKGF D[ XCNWGU ^^ ^^ RCUUYQTF^^ ^^ RTQHKNG ^^RTQHKNG^^  (41/ FDCAWUGTU 9*'4' WUGTPCOG  WRRGT   RTQORV JQUV TO H TGUGVUSN RTQORV GZKV URQQN QHH GZKV W poleceniu UGNGEV stosuje się dwa zestawy czterech apostrofów.
  • 110. Rozdział 10. Zabezpieczenie i monitorowanie bazy danych 389 Powy szy skrypt generuje przed zakończeniem skrypt reset.sql. Ten plik składa się z trzech wierszy. Pierwszy z nich zawiera polecenie CNVGT WUGT z klauzulą XCNWGU, po której następuje zaszyfrowane hasło. Drugi wiersz zawiera polecenie JQUV, które usuwa plik reset.sql (poniewa po wykorzystaniu jak podano w punkcie 6., nie będzie on ju potrzebny). Trzeci wiersz zawiera polecenie GZKV umo liwiające wyjście z programu SQL*Plus. Przykładowy plik reset.sql pokazany jest poni ej: CNVGT WUGT /%)4')14 KFGPVKHKGF D[ XCNWGU #&&%%''&(# RTQHKNG &'(#7.6 JQUV TO H TGUGVUSN GZKV Polecenie TO H w drugim wierszu powinno być zastąpione przez polecenie usunięcia pliku odpowiednie dla danego systemu operacyjnego. Następnie mo na wykonać czynności z punktów 4. oraz 5., które obejmują zmianę hasła u ytkownika (za pomocą polecenia CNVGT WUGT) i uzyskanie dostępu do konta u ytkow- nika. Te operacje wyszczególniono na poni szym listingu: CNVGT WUGT /%)4')14 KFGPVKHKGF D[ /;A6740 EQPPGEV /%)4')14/;A6740 Potem nastąpi zalogowanie na konto /%)4')14. Po zakończeniu testowania nale y zalo- gować się w programie SQL*Plus i uruchomić powy szy skrypt reset.sql. Polecenie wykonania skryptu reset.sql pokazano poni ej: USNRNWU U[UVGOOCPCIGT "TGUGV W razie jednoczesnego testowania wielu kont warto niekiedy uwzględniać nazwę u yt- kownika w nazwie pliku reset.sql. Zapobiegnie to sytuacji, w której pierwszy plik reset. sql zostałby nadpisany przez późniejszą wersję. Je eli opisywane czynności są wyko- nywane na kontach z prefiksem 125 , nale y zachować szczególną ostro ność, poniewa znak dolara jest znakiem specjalnym w niektórych systemach operacyjnych (takich jak Unix). Po przeprowadzeniu omawianej procedury konto jest ponownie ustawione na swoją oryginalną zaszyfrowaną wartość hasła i tym samym na oryginalne hasło. Testowanie konta mo e odbywać się bez potrzeby znajomości jego hasła i bez jego zniszczenia. Pominięcie ograniczeń hasła podczas operacji przejmowania konta użytkownika Istnieje opcja uniemo liwienia u ytkownikom ponowne wykorzystywanie starych haseł (patrz podrozdział Uniemo liwianie ponownego u ycia hasła w początkowej części tego rozdziału). Uniemo liwienie ponownego stosowania haseł mo e mieć wpływ na mo li- wość tymczasowego przejmowania konta u ytkownika. Zgodnie z treścią wcześniejsze- go podrozdziału, standardowy zestaw czynności wykonywanych w celu tymczasowego przejmowania konta innego u ytkownika jest następujący: 1. Wykonanie zapytania na perspektywie &$#A75'45 w celu określenia aktualnego zaszyfrowanego hasła dla danego konta.
  • 111. 390 Część II Zarządzanie bazą danych 2. Wygenerowanie polecenia CNVGT WUGT, które będzie konieczne w celu ponownego ustawienia zaszyfrowanego hasła na odpowiednią wartość. 3. Zachowanie w pliku buforowym polecenia CNVGT WUGT. 4. Zmiana hasła u ytkownika. 5. Uzyskanie dostępu do konta u ytkownika i przeprowadzenie zamierzonych czynności. 6. Uruchomienie pliku zawierającego polecenie CNVGT WUGT w celu ponownego ustawienia zaszyfrowanego hasła u ytkownika na jego oryginalną wartość. Je eli ustawienia profilu u ytkownika uniemo liwiają ponowne wykorzystanie hasła, przeprowadzenie czynności z punktu 6. nie powiedzie się, a zatem nie będzie mo liwe ponowne ustawienie hasła u ytkownika na jego oryginalną wartość. Konieczne będzie ustawienie nowego hasła dla tego u ytkownika — co znacznie zmniejsza efektywność procedury tymczasowego przejmowania konta innego u ytkownika. W celu uniknięcia tej sytuacji nale y utworzyć profil, który nie wymusza ograniczeń w ponownym ustawianiu ju wykorzystanych haseł. Przed rozpoczęciem procedury tymczasowego przejmowania konta nale y przypisać u ytkownikowi oryginalny profil. W skrypcie opisywanym w poprzednim podrozdziale ustawienie profilu u ytkownika jest przechwycone i zintegrowane w poleceniu CNVGT WUGT, które ponownie ustawia ha- sło u ytkownika. Zatem czynności opisywanej procedury są następujące: 1. Sprawdzenie ustawień profilu u ytkownika. 2. W razie potrzeby przypisanie u ytkownikowi profilu bez limitu historii hasła, bez funkcji weryfikacji hasła oraz z mo liwością nieograniczonego ponownego zastosowania hasła. Przykładowe polecenie utworzenia takiego profilu pokazano poni ej: ETGCVG RTQHKNG VGORARTQHKNG NKOKV RCUUYQTFAXGTKH[AHWPEVKQP PWNN RCUUYQTFATGWUGAVKOG WPNKOKVGF RCUUYQTFATGWUGAOCZ WPNKOKVGF 3. Wykonanie zapytania na perspektywie &$#A75'45 w celu określenia aktualnego zaszyfrowanego hasła oraz profilu dla danego konta. 4. Wygenerowanie polecenia CNVGT WUGT, które będzie konieczne w celu ponownego ustawienia zaszyfrowanego hasła i profilu na ich oryginalne wartości. 5. Zachowanie w pliku buforowym polecenie CNVGT WUGT. 6. Zmiana hasła u ytkownika. 7. Uzyskanie dostępu do konta u ytkownika i przeprowadzenie zaplanowanych czynności. 8. Uruchomienie pliku zawierającego polecenia CNVGT WUGT w celu ponownego ustawienia zaszyfrowanego hasła i profilu u ytkownika na ich oryginalne wartości.
  • 112. Rozdział 10. Zabezpieczenie i monitorowanie bazy danych 391 Wirtualne Prywatne Bazy Danych Firma Oracle wprowadziła mechanizm Wirtualnej Prywatnej Bazy Danych (ang. Virtual Private Database, VPD) w wersjiOracle8i, wydanie 3., aby umo liwić szczegółową kontrolę dostępu w połączeniu z zabezpieczeniem aplikacji. Wirtualna prywatna baza danych pozwala na ustanawianie polityki bezpieczeństwa w formie predykatów (klauzul YJGTG), które są dołączane do ka dego zapytania, które u ytkownicy wykonują w bazie danych. Organizując dane za pomocą bazy VPB wystarczy tylko raz ustalić struktury bezpieczeństwa na poziomie serwera danych. Jako e procedury bezpieczeństwa są przypisane do danych zamiast do aplikacji, role systemu bezpieczeństwa są stosowane zawsze i z ka dego punktu. Dzięki temu dane prezentowane przez zapytanie są zawsze takie same. Typ połączenia nie gra tu adnej roli: czy to będzie aplikacja SQL*Plus, czy sterownik ODBC, dane mają ten sam wygląd. Wirtualna prywatna baza danych opiera się na kilku mechanizmach, gwarantujących poufność danych dla ka dego u ytkownika. Aby zabezpieczyć właściwy rozdział danych nale y się upewnić, e tabele zostały skon- struowane tak, aby mo liwe było limitowanie dostępu do nich, zgodnie z wartościami w jednej lub większej liczbie kolumn. Częstą praktyką jest definiowanie klucza firmowego identyfikującego daną firmę, zwłaszcza jeśli z tych samych danych korzysta kilka instytucji na raz. Nale y wtedy skojarzyć u ytkowników z kluczami a następnie ustalić politykę, która pozwala u yt- kownikom na uzyskiwanie dostępu do poszczególnych, odpowiednich dla nich wierszy. W takim przypadku, kiedy zostanie utworzona perspektywa, zostanie zastosowana klau- zula YJGTG ograniczająca u ytkownikowi mo liwości podglądu i manipulowania tylko do jego danych. W ten sposób automatycznie implementowana jest precyzyjna kontrola dostępu. Dla przykładu zakłada się, e jest dokonywany wybór z tabeli 2#6+'065 (Pacjenci) z wykorzystaniem poni szej perspektywy: UGNGEV
  • 113. HTQO 2#6+'065 Jeśli tabela 2#6+'065 uwzględnia prowadzenie polityki bezpieczeństwa, co ogranicza mo liwości pacjentów do przeglądania jedynie danych dotyczących siebie, wtedy per- spektywa zostanie automatycznie przepisana w następujący sposób: UGNGEV
  • 114. (TQO 2#6+'065 YJGTG 2#6+'065A+&  U[UAEQPVGZV 2#6+'065A%106':6  #..A2#6+'065A+&  W tym przykładzie klauzula YJGTG została automatycznie zastosowana do perspektywy, jako e stosowana polityka bezpieczeństwa sprawia, e u ytkownicy mogą mieć dostęp jedynie do swoich danych, nie wa ne jakich informacji szukają lub jak konstruują pyta- nie. Identyfikator pacjenta jest pobierany z definiowanego przez u ytkownika kontekstu aplikacji 2#6+'06A%106':6. Funkcja systemowa U[UAEQPVGZV zwraca wartość atrybutu #..A2#6+'065A+& dla kontekstu 2#6+'06A%106':6. Wewnątrz samej bazy VPD trzeba nadal przyznawać u ytkownikom odpowiednie pra- wa dla ka dej z tabel, ale nie trzeba tworzyć osobnych perspektyw ani procedur, które
  • 115. 392 Część II Zarządzanie bazą danych miałyby ograniczyć dostęp do danych nale ących do innych u ytkowników. Tak więc u ywając bazy VPD nie trzeba się ju dłu ej martwić o u ytkowników uzyskujących dostęp do danych poprzez SQL*Plus, którzy uzyskali ró ne uprawnienia za pośrednic- twem aplikacji. Tworzenie bazy VPD Tworzenie wirtualnej prywatnej bazy systemu Oracle znacznie się ró ni od instalacji i konfiguracji większości narzędzi Oracle. Baza VPD nie jest aplikacją samą w sobie ale raczej jest instalowana wraz z bazą danych. Aby dokonać instalacji wirtualnej prywatnej bazy danych, nale y podjąć następujące kroki: 1. Określić obiekty bazy danych i ich relacje. 2. Zdefiniować politykę bezpieczeństwa. 3. Utworzyć kontekst aplikacji. 4. Utworzyć pakiet, który ustawi kontekst. 5. Utworzyć funkcje polityki bezpieczeństwa. 6. Połączyć funkcje polityki z tabelami i perspektywami. Istnieje kilka ró nych sposobów, aby wykonać te czynności. Poni ej zaprezentowano metodę, która jest uwa ana za najwydajniejszą, najłatwiejszą do dalszego rozbudowy- wania, najpewniejszą i najlepiej zabezpieczoną. Określenie obiektów bazy danych oraz ich wzajemnych relacji Aby rozpocząć tworzenie bazy VPD, nale y określić jakie obiekty będą wchodziły w jej zakres, jakie będą miały względem siebie relacje i wedle jakich kluczy będą tworzone procedury bezpieczeństwa. Na przykład w przychodni lekarskiej pacjenci będą mogli obejrzeć i skopiować swoje karty, ale nie będą w stanie zrobić tego z cudzymi. Najwa niejszą funkcją będzie utrzymanie poziomu zabezpieczeń i prywatności danych. Najwa niejszym kluczem będzie identyfikator pacjenta, który determinuje sposób jego uzyskiwania dostępu do danych. W omawianym przykładzie (który jest ogromnie uproszczony) zakłada się istnienie jedynie dwóch tabel, w których będą przechowywane dane: 2#6+'06A2'4510#.A+0(14/#6+10 oraz /'&+%#.A+0(14/#6+10. 2#6+'06A2'4510#.A +0(14/#6+10 zawiera informacje o pacjencie: imię, nazwisko, adres, numer telefonu, podczas gdy tabela /'&+%#.A+0(14/#6+10, jak sugeruje nazwa, zawiera dane medyczne. Identyfikator 2#6+'06A+& jest u ywany do tego, aby połączyć dane przechowywane w obu tych tabelach. Oto wynik połączenia obu tych tabel: ETGCVG VCDNG 2#6+'06A2'4510#.A+0(14/#6+10 2CVKGPVA+F 07/$'4  RTKOCT[ MG[ 2J[UKEKCPA+F 07/$'4  PQV PWNN 2CVKGPVA7UGTPCOG 8#4%*#4   2CVKGPVA0COG 8#4%*#4   2CVKGPVA#FFTGUU 8#4%*#4   2CVKGPVA#FFTGUU 8#4%*#4  
  • 116. Rozdział 10. Zabezpieczenie i monitorowanie bazy danych 393 2CVKGPVA2JQPG 07/$'4   ETGCVG VCDNG /'&+%#.A+0(14/#6+10 2CVKGPVAKF 07/$'4  RTKOCT[ MG[ 6GUVA2GTHQTOGF 8#4%*#4   6GUVA4GUWNVU 8#4%*#4   &KCIPQUKU 8#4%*#4   Definiowanie polityki bezpieczeństwa Polityka bezpieczeństwa opisywanej, przykładowej sytuacji mówi po prostu, e pacjen- ci mogą zapoznawać się tylko i wyłącznie e swymi własnymi danymi. Wytyczne innych polityk bezpieczeństwa będą zapewne bardziej skomplikowane, co więcej, mo e być ich nawet kilka dla ka dej jednej tabeli bądź perspektywy. Nale y je formułować nadzwyczaj jasno i wyraźnie, poniewa ka de zdanie musi później być przeniesione na kod funkcji PL/SQL, który zostanie dołączony do wyznaczonej tabeli aplikacji lub perspektywy. Tworzenie kontekstu aplikacji Kontekst aplikacji jest nazwą zestawu atrybutów i wartości, które mo na ustawić a na- stępnie powiązać z obecną sesją u ytkownika. System Oracle zapewnia domyślny kon- tekst 75'408, który zawiera informacje systemowe o aktualnej sesji, takie jak nazwa u ytkownika, host czy nazwa programu. Jeśli trzeba określić dodatkowe atrybuty dla u ytkownika, takie jak 2#6+'06A+&, nale y się posłu yć kontekstem aplikacji. U ywając prawa %4'#6' #0; %106':6 mo na utworzyć kontekst aplikacji. Nale y określić szczególną nazwę kontekstu a potem połączyć ją z nazwą pakietu, który implementuje kontekst. Nazwa kontekstu powinna być jedyna w swoim rodzaju i nie mo e nigdzie się powtarzać w całej bazie danych. Jeśli zdarzy się tak, e plik o takiej nazwie istnieje, system wyświetli informację o błędzie. Aby utworzyć kontekst, nale y posiadać prawo %4'#6' #0; %106':6. Poni ej pokazano przykład utworzenia kontekstu nazwanego /'&+%#.5'%A%6:, który będzie częścią pakietu PL/SQL. Kontekst ten zostanie zapisany w schemacie /'&+%#.A&'26. Oto składnia two- rzenia kontekstu: ETGCVG EQPVGZV /'&+%#.A5'%A%6: WUKPI /'&+%#.A&'26/'&+%#.A5'% Tworzenie pakietu, który ustawi kontekst Kiedy kontekst zostanie utworzony, nale y zbudować pakiet i funkcje, które go ustawią. Poni ej zaprezentowano przykład ustawiania atrybutu kontekstu 2#6+'06A+& za pomocą bie ącej nazwy u ytkownika uzyskanej z kontekstu domyślnego, 75'408. Ta funkcja wykorzystuje nazwę u ytkownika, aby sprawdzić niezbędne atrybuty w tabeli. ETGCVG QT TGRNCEG RCEMCIG /'&+%#.A5'% KU RTQEGFWTG )'6A2#6+'06A+& GPF /'&+%#.A5'%  ETGCVG QT TGRNCEG RCEMCIG DQF[ /'&+%#.A5'% KU RTQEGFWTG )'6A2#6+'06A+&
  • 117. 394 Część II Zarządzanie bazą danych KU 2#6+'06A+&A8#4 07/$'4 DGIKP UGNGEV 2#6+'06A+& KPVQ 2#6+'06A+&A8#4 HTQO 2#6+'06A2'4510#.A+0(14/#6+10 YJGTG 2#6+'06A75'40#/'  5;5A%106':6 75'4'08  5'55+10A75'4  FDOUAUGUUKQPUGVAEQPVGZV /'&+%#.A5'%A%6:  2#6+'06A+&  2#6+'06A+&A8#4  GPF )'6A2#6+'06A+& GPF /'&+%#.A5'%  System Oracle dostarcza zestaw predefiniowanych funkcji w kontekście systemowym 5;5A%106':6 oraz wbudowany kontekst 75'408, który umo liwia zwrócenie nazwy u yt- kownika wykonującego procedurę. Istnieje tak e wiele ró nych wartości, które mo na pozyskać z funkcji 5;5A%106':6. Te, które mają coś wspólnego z zagadnieniami bezpie- czeństwa, przedstawiono w tabeli 10.7. Aby ustawić kontekst dla u ytkownika sesji, nale y się odwołać do funkcji, która była powiązana z kontekstem, kiedy był on tworzony. Mo na to zrobić z poziomu samej aplikacji lub poprzez wyzwalacz logowania. U ywanie go gwarantuje tak e, e kontekst będzie zawsze ustawiony, niezale nie od sposobu, w jaki u ytkownik zaloguje się do bazy danych. Aby ustawić wyzwalacz logowania, nale y u yć wyzwalacza QP NQIQP, który wprowadzono w Oracle8i, wersja 8.1.5. Tworzenie funkcji polityki bezpieczeństwa Następnie nale y skorzystać z funkcji PL/SQL, aby zaimplementować politykę bezpie- czeństwa. Ta funkcja zostanie skojarzona z tabelą /'&+%#.A+0(14/#6+10. Poni ej zaprezentowano proces, który jeśli funkcja jest ju przygotowana, narzuca na zapytanie szczegółowe procedury bezpieczeństwa. Nale y zaznaczyć, e w tym przy- padku „zapytanie” oznacza ka dą formę uzyskiwania dostępu do informacji z tabeli lub perspektywy, włączając w to (ale nie ograniczając się tylko do nich) instrukcje UGNGEV, KPUGTV, FGNGVG, WRFCVG oraz instrukcje podzapytań. Od chwili, w której polityka bezpie- czeństwa zostanie skojarzona z tabelą lub widokiem, zawsze gdy u ytkownik wystosuje zapytanie, system będzie się odwoływał do polityki bezpieczeństwa, która zwróci od- powiednią wartość w formie warunku dostępu do danych lub predykatu. W praktyce predykat jest klauzulą YJGTG, która jest dopisywana do instrukcji SQL u yt- kownika, aby ograniczać wiersze, które zale nie od typu u ywanej instrukcji, będą zwra- cane, uaktualniane lub usuwane. Zmodyfikowane zapytanie jest oceniane i optymalizo- wane podczas analizy instrukcji i mo e być następnie udostępniane i ponownie u ywane, aby usprawnić działanie systemu. Celem omawianego działania jest umo liwienie pacjentom oglądania tylko i wyłącznie ich własnych danych, korzystając z pomocy identyfikatora 2#6+'06A+&. Oto przykładowa procedura PL/SQL, dzięki której mo na uzyskać zamierzony efekt: ETGCVG QT TGRNCEG RCEMCIG /'&+%#.A5'% CU HWPEVKQP /'&+%#.A+&A5'% TGVWTP 8#4%*#4 '0& /'&+%#.A5'%  ETGCVG QT TGRNCEG RCEMCIG DQF[ /'&+%#.A5'% CU
  • 118. Rozdział 10. Zabezpieczenie i monitorowanie bazy danych 395 Tabela 10.7. Parametry SYS_CONTEXT Parametr Zwracana wartość CWVJGPVKECVKQPAFCVC Dane u ywane do identyfikacji logującego się u ytkownika. CWVJGPVKECVKQPAV[RG Metoda identyfikacji u ytkownika. Wartościami, które mo na uzyskać, są: &#6#$#5' (baza danych): identyfikacja typu nazwa_u ytkownika/hasło; 15: zewnętrzna identyfikacja u ytkowników przez system operacyjny; 0'6914- (sieć): identyfikacja przez protokół sieciowy lub identyfikacja #01; 241:;: identyfikacja połączenia przez serwer proxy 1%+. DIALQDAKF Jeśli proces drugoplanowy Oracle ustanowił bie ącą sesję, zostanie zwrócony identyfikator zadania. ENKGPVAKPHQ U ywany w połączeniu z pakietem &$/5A#22.+%#6+10A+0(1 w celu magazynowania informacji. Ten parametr zwraca do 64 bajtów informacji o sesji u ytkownika. EWTTGPVAUEJGOC Nazwa domyślnego schematu, u ywanego jako bie ący schemat. EWTTGPVAWUGT Nazwa u ytkownika, z którego uprawnieniami działa bie ąca sesja. EWTTGPVAWUGTKF Identyfikator u ytkownika, z którego uprawnieniami działa bie ąca sesja. FDAFQOCKP Domena bazy danych, identyczna z tą podaną w parametrze inicjalizacji &$A&1/#+0. FDAPCOG Nazwa bazy danych identyczna z tą podaną w parametrze inicjalizacji &$A0#/'. GPVT[KF Dostępny identyfikator pola obserwacji. Ustawia się go, jeśli parametr inicjalizacji #7&+6A64#+. został ustawiony na wartość 647' w pliku parametrów inicjalizacji. GZVGTPCNAPCOG Zewnętrzna nazwa u ytkownika bazy danych. Rozpoznana nazwa jest zapamiętywana w certyfikacie u ytkownika i zwracana dla procedur identyfikacji protokołu SSL wykorzystujących certyfikaty v.503. HIALQDAKF Jeśli proces pierwszoplanowy Oracle ustanowił bie ącą sesję, zostanie zwrócony identyfikator zadania. JQUV Nazwa komputera, z którego połączył się klient. KPUVCPEG Numer identyfikacyjny bie ącej instancji. KUFDC Jeśli rola DBA jest włączona, zwrócona zostanie wartość 647'. W przeciwnym wypadku (#.5'. PGVYQTMARTQVQEQN Protokół sieciowy u ywany do połączenia. QUAWUGT Nazwa u ytkownika systemu operacyjnego, który zapoczątkował sesję. RTQZ[AWUGT Nazwa u ytkownika bazy danych, który rozpoczął sesję jako 5'55+10A75'4. RTQZ[AWUGTKF Identyfikator nazwy u ytkownika bazy danych, który rozpoczął sesję jako 5'55+10A75'4. UGUUKQPAWUGT Nazwa u ytkownika bazy danych, pod którą u ytkownik jest identyfikowany. Wartość ta pozostaje niezmienna przez cała sesję. UGUUKQPAWUGTKF Identyfikator nazwy u ytkownika bazy danych, pod którą bie ący u ytkownik jest identyfikowany. UGUUKQPKF Identyfikator sesji obserwacji. VGTOKPCN Identyfikator systemu operacyjnego dla klienta w bie ącej sesji.
  • 119. 396 Część II Zarządzanie bazą danych 
  • 120. 1)4#0+%<# +05647-%,' 5'.'%6 $#<7,ä% 0# 9#461 %+ 2#6+'06A+&
  • 121.  HWPEVKQP /'&+%#.A+&A5'% TGVWTP 8#4%*#4 KU /;A24'&+%#6' 8#4%*#4   DGIKP /;A24'&+%#6'  2#6+'06A+&5;5A%106':6 /'&+%#.A5'%A%6:  2#6+'06A+&  TGVWTP /;A24'&+%#6' GPF /'&+%#.A+&A5'% GPF /'&+%#.A5'%  Aby nie komplikować kodu, w procedurze zrezygnowano z obsługi błędów. W powy szym, przykładowym fragmencie kodu nastąpiło pobranie identyfikatora 2# 6+'06A+& z kontekstu aplikacji /'&+%#.A5'%A%6: i wygenerowane predykatu, który ma być dodany do zapytania na tabeli /'&+%#.A0(14/#6+10. Aby przetestować działanie predy- katu przyjęto, e wartością 2#6+'06A+& jest . Zwrócony predykat będzie wy- glądał tak: 2#6+'06A+&   Ten predykat będzie u yty wraz z klauzulą YJGTG, co zapewni e pacjent będzie miał dostęp tylko do tych informacji, które zgadzają się z jego identyfikatorem. Połączenie funkcji polityki z tabelami i widokami System Oracle dostarcza pakietu PL/SQL o nazwie &$/5A4.5, który pozwala na zarzą- dzanie zasadami polityki bezpieczeństwa. Ka dy kto tworzy lub zarządza nimi, będzie musiał posiadać prawo do uruchamiania (GZGEWVG) tego pakietu nadane przez u ytkow- nika 5;5. Tabela 10.8 pokazuje cztery procedury dostępne w pakiecie. Tabela 10.8. Procedury Pakietu DBMS_RLS Procedura Funkcja #&&A21.+%; Dołącza politykę bezpieczeństwa do tabeli bądź perspektywy. &412A21.+%; Usuwa politykę bezpieczeństwa z tabeli lub perspektywy. 4'(4'5*A21.+%; Wymusza ponowną analizę otwartych kursorów powiązanych ze starą polityką, aby natychmiast zastosować nową lub zmienioną politykę bezpieczeństwa. '0#$.'A21.+%; Włącza lub wyłącza politykę bezpieczeństwa, która uprzednio została dodana do tabeli bądź perspektywy. Pakietu &$/5A4.5 u ywa się, aby skojarzyć funkcje polityki z tabelami lub perspekty- wami. Istnieje wiele zmiennych, które mo na u yć z ka dą z procedur. Są one zaprezen- towane w tabeli 10.9. Procedury &412A21.+%;, 4'(4'5*A21.+%; oraz '0#$.'A21.+%; wymagają u ycia parame- trów QDLGEVAUEJGOC, QDLGEVAPCOG i RQNKE[APCOG. Dla procedury '0#$.'A21.+%; wyma- gany jest jedynie parametr GPCDNG. W poni szym przykładzie dodano politykę nazwaną /'&+%#.A21.+%; do tabeli /'&+%#.A +0(14/#6+10:
  • 122. Rozdział 10. Zabezpieczenie i monitorowanie bazy danych 397 Tabela 10.9. Parametry pakietu DBMS_RLS dla procedury ADD_POLICY Parametr Opis QDLGEVAUEJGOC Nazwa schematu zawierającego tabelę lub perspektywę. QDLGEVAPCOG Nazwa tabeli lub perspektywy. RQNKE[APCOG Nazwa polityki, którą jest dodawana lub usuwana. Nazwa ta musi być unikatowa dla danej tabeli lub perspektywy. HWPEVKQPAUEJGOC Schemat funkcji polityki. RQNKE[AHWPEVKQP Nazwa funkcji, która generuje predykat dla polityki. Jeśli funkcja została zdefiniowana wewnątrz pakietu, to jego nazwa tak e musi być podana. UVCVGOGPVAV[RGU Typy instrukcji do których stosuje się politykę. Mo e to być dowolna kombinacja instrukcji UGNGEV, KPUGTV, WRFCVG i FGNGVG. Domyślnie polityka odnosi się do nich wszystkich. WRFCVGAEJGEM Kiedy jest ustawiony jako 647', ka da wstawiona lub aktualizowana wartość będzie sprawdzana względem polityki bezpieczeństwa (argument opcjonalny). GPCDNG Określa, czy polityka jest włączona, czy te nie. Wartością domyślną jest 647'. GZGEWVG &$/5A4.5#&&A21.+%; /'&+%#.A&'26  /'&+%#.A+0(14/#6+10  /'&+%#.A21.+%;  /'&+%#.A&'26  /'&+%#.A5'%/'&+%#.A+&A5'%  5'.'%6 (#.5'647'  Ta instrukcja tworzy politykę /'&+%#.A21.+%;, która z kolei powoduje, e funkcja /'&+ %#.A5'%/'&+%#.A+&A5'% zostanie uruchomiona, kiedy w tabeli /'&+%#.A+0(14/#6+10 w schemacie /'&+%#.A&'26 zostanie wykonane polecenie UGNGEV. Instrukcje zostaną przetworzone i umieszczone w dzielonym obszarze SQL, aby były dostępne dla innych u ytkowników z podobnymi uprawnieniami. Jeśli jedna z reguł mówi, e dostęp do tabel jest mo liwy tylko w godzinach pracy, czyli od 9.00 do 17.00, to w celu ograniczenia dostępu do tabeli oprócz zaprogramowania procedury trzeba tak- e przygotować zadanie uruchamiane ka dego popołudnia pod koniec dnia roboczego. Zadanie to ma uniewa niać dzielony kod SQL. Mo na to zrobić w następujący sposób: GZGEWVG &$/5A4.54'(4'5*A21.+%; UEJGOCV Y MVÎT[O RTGEJQY[YCPC LGUV RQNKV[MC  PCYCAVCDGNK  PCYCARQNKV[MK  W powy szym przykładzie polityka funkcjonuje w tym samym schemacie, co tabele aplikacji. W praktyce nale y jednak przechowywać funkcje w obszarze nale ącym do administratora odpowiedzialnego za kwestie bezpieczeństwa, aby uchronić ich zawar- tość przed celowym lub przypadkowym usunięciem z tabel lub perspektyw. Tworzenie wyzwalacza Kiedy wszystkie elementy znajdą się ju na swoim miejscu, nale y utworzyć wyzwa- lacz, który będzie wprowadzał politykę bezpieczeństwa w ycie. Zaleca się u ywanie wyzwalacza NQIQP, co zagwarantuje, e polityka będzie stosowana niezale nie od spo- sobu, w jaki u ytkownik połączy się z bazą danych.
  • 123. 398 Część II Zarządzanie bazą danych Nale y jednak przestrzec, e jeśli wyzwalacz nie działa prawidłowo, mo e dojść do sytu- acji, w której nikt nie będzie w stanie zalogować się do bazy danych. W takim przypad- ku nale y się zalogować jako u ytkownik z uprawnieniami 5;5&$# i usunąć wyzwalacz do czasu, kiedy błędy zostaną usunięte. W systemie Oracle9i składnia, której nale y u yć w polu )7+ NQIQP 53.
  • 124. 2NWU wygląda następująco: nale y zalogować się na konto 5;56'/ z hasłem /#0#)'4. Wymagana fraza CU U[UFDC zostanie dodana po ciągu znaków połączenia. W przykładzie pokazanym ni ej nazwą instancji jest /;&$914.&. 7UGT 0COG 5;56'/ 2CUUYQTF /#0#)'4 *QUV 5VTKPI /;&$914.& #5 5;5&$# Obserwacja Baza danych Oracle ma zdolność prowadzenia obserwacji wszystkich działań, które w niej następują. Rekordy obserwacji mogą być zapisywane do tabeli 5;5#7& albo mogą tworzyć zapis obserwacji w systemie operacyjnym. Mo liwość wykonywania za- pisu obserwacji w systemie operacyjnym zale y od danego systemu operacyjnego. Obserwacji mogą podlegać trzy ró ne rodzaje działań: próby logowania, uzyskiwanie dostępu do obiektów oraz operacje przeprowadzane na obiektach bazy danych. W ko- lejnych podrozdziałach omówiono sposoby śledzenia wszystkich wymienionych działań. Podczas prowadzenia obserwacji domyślnym sposobem pracy bazy danych jest reje- strowanie zarówno udanych, jak i nieudanych poleceń. Istnieje mo liwość konfiguro- wania ka dego typu prowadzonej obserwacji. Warunkiem uruchomienia obserwacji w bazie danych jest wprowadzenie wpisu dla pa- rametru #7&+6A64#+. w pliku init.ora bazy danych. Mo liwe są następujące wartości pa- rametru #7&+6A64#+.: 010' — wyłączenie obserwacji; &$ — włączenie obserwacji i dokonywanie zapisów do tabeli 5;5#7& ; 15 — włączenie obserwacji i tworzenie zapisu obserwacji na poziomie systemu operacyjnego (zale nego od rodzaju systemu operacyjnego). Polecenia CWFKV opisywane w następnych podrozdziałach mogą być wydawane bez względu na ustawienie parametru #7&+6A64#+.. Nale y jednak pamiętać, e polecenia te pozostaną nieaktywne a do uruchomienia bazy danych, następującego po ustawieniu odpowiedniej wartości parametru #7&+6A64#+. pliku init.ora. W razie dokonania wyboru opcji składowania rekordów obserwacji w tabeli 5;5#7& nale y pamiętać o okresowej archiwizacji rekordów tej tabeli a następnie o jej obcinaniu za pomocą polecenia VTWPECVG. Tabela 5;5#7& znajduje się w słowniku danych, a zatem w przestrzeni tabel 5;56'/. Brak okresowego usuwania rekordów tej tabeli mo e powo- dować problemy związane z przestrzenią dyskową. W celu umo liwienia u ytkowni- kowi usuwania rekordów z tabeli 5;5#7& mo na przyznać mu rolę usuwania katalogu &'.'6'A%#6#.1)A41.'.
  • 125. Rozdział 10. Zabezpieczenie i monitorowanie bazy danych 399 Obserwacja logowania Istnieje mo liwość obserwacji ka dej próby połączenia się z bazą danych. Polecenie rozpoczęcia obserwacji prób logowania podano poni ej: CWFKV UGUUKQP Mo na dokonać takich ustawień, aby śledzone były tylko próby połączeń zakończone powodzeniem (pierwszy wiersz poni szego przykładu) albo niepowodzeniem (drugi wiersz). Poni ej przedstawiono sposób wydawania odpowiednich poleceń: CWFKV UGUUKQP YJGPGXGT UWEEGUUHWN CWFKV UGUUKQP YJGPGXGT PQV UWEEGUUHWN Je eli rekordy obserwacji są składowane w tabeli 5;5#7& , mo na je przeglądać za pomocą perspektywy słownika danych &$#A#7&+6A5'55+10 tej tabeli. Poni ej przedstawiono przykładowe zapytanie słu ące do wyszukania rekordów obser- wacji logowania z perspektywy &$#A#7&+6A5'55+10. W ten sposób otrzymuje się infor- macje dotyczące wykorzystanego konta systemu operacyjnego (15A7UGTPCOG), nazwę konta bazy danych Oracle (7UGTPCOG) oraz identyfikator +& wykorzystywanego terminala (6GTOKPCN). Przeglądana jest kolumna 4GVWTPEQFG. Wartość  tej kolumny oznacza próbę logowania zakończoną powodzeniem, w przeciwnym razie sprawdzane są dwa najczę- ściej występujące numery błędów w celu określenia przyczyny niepowodzenia. Wyświe- tlony jest równie czas zalogowania i wylogowania z danego konta. UGNGEV 15A7UGTPCOG 
  • 126. 0CYC W [VMQYPKMC U[UVGOW QRGTCE[LPGIQ
  • 127.  7UGTPCOG 
  • 128. 0CYC W [VMQYPKMC MQPVC DC[ FCP[EJ 1TCENG
  • 129.  6GTOKPCN 
  • 130. +FGPV[HKMCVQT W [VGIQ VGTOKPCNC
  • 131.  &'%1&' 4GVWTPEQFG   %QPPGEVGF    (CKNGF0WNN    (CKNGF 4GVWTPEQFG 
  • 132. 5RTCYFGPKG PKGRQYQFGPKC
  • 133.  61A%*#4 6KOGUVCOR &&/10;; **/+55  
  • 134. %CU CNQIQYCPKC
  • 135.  61A%*#4 .QIQHHA6KOG &&/10;; **/+55 
  • 136. %CU Y[NQIQYCPKC
  • 137.  HTQO &$#A#7&+6A5'55+10 Sprawdzanymi numerami błędów są ORA-1005 oraz ORA-1017. Te dwa kody oznaczają najczęściej występujące błędy logowania. Kod ORA-1005 jest zwracany, jeśli u yt- kownik wprowadzi nazwę u ytkownika bez podania hasła. Zwrócenie kodu ORA-1017 następuje po wprowadzeniu nieprawidłowego hasła. Aby wyłączyć śledzenie sesji, nale y wydać polecenie PQCWFKV, jak pokazano poni ej: PQCWFKV UGUUKQP Obserwacja działań Istnieje mo liwość obserwacji ka dego działania mającego wpływ na poszczególne obiekty bazy danych, takie jak tabela, powiązanie baz danych, przestrzeń tabel, synonim, segment wycofania, u ytkownik lub indeks. Obserwowane działania, wpływające na stan poszczególnych obiektów, takie jak tworzenie (polecenie ETGCVG), zmiana (polecenie CNVGT) lub usuwanie (polecenie FTQR) mogą być grupowane. Takie zgrupowania poleceń ułatwiają ustalenie i zachowanie ustawień prowadzonych obserwacji.
  • 138. 400 Część II Zarządzanie bazą danych Wszystkie polecenia przeprowadzane na poziomie systemu mogą być obserwowane, a grupy poleceń są określone z góry. Na przykład, aby obserwować wszystkie polecenia dotyczące ról na poziomie systemu, nale y wprowadzić zapis: CWFKV TQNG Aby wyłączyć to ustawienie, nale y wprowadzić polecenie: PQCWFKV TQNG Grupy poleceń SQL słu ące do ustawień obserwacji wyszczególniono w dodatku A., w opisie instrukcji #7&+6 Ka da z tych grup mo e słu yć w celu śledzenia wszystkich poleceń SQL, które jej dotyczą. W tabeli 10.2 znajduje się szczegółowy wykaz odpo- wiadających im uprawnień. Na przykład, przedstawione wy ej ustawienie CWFKV TQNG spowoduje obserwację wydawanych poleceń ETGCVG TQNG, CNVGT TQNG, FTQR TQNG oraz UGV TQNG. Oprócz podstawowych opcji śledzenia przedstawionych w dodatku A, mo na prowadzić obserwację stosowania ka dego szczególnego polecenia (takiego jak ETGCVG VCDNG). Baza danych Oracle dostarcza równie następujących grup opcji instrukcji: %100'%6 — obserwuje operacje zalogowania i wylogowania do i z bazy danych Oracle; &$# — obserwuje polecenia, które wymagają identyfikacji administratora bazy danych, takich jak ITCPV, TGXQMG, CWFKV, PQCWFKV, ETGCVG oraz CNVGT VCDNGURCEG i ETGCVG lub FTQR RWDNKE U[PQP[O; 4'5174%' — obserwuje polecenia ETGCVG i FTQR dla tabel, klastrów, perspektyw, indeksów, przestrzeni tabel, typów i synonimów; #.. — obserwuje wszystkie polecenia; #.. 24+8+.')'5 — wszystkie poprzednie polecenia oraz dodatkowo FGNGVG, KPUGTV, WRFCVG oraz kilka innych poleceń (patrz dodatek A). Do ka dego obserwowanego działania jest przypisany kod liczbowy w bazie danych. Te kody mo na przeglądać za pomocą perspektywy #7&+6A#%6+105. Poni ej przedstawiono zapytanie, efektem którego jest wyświetlenie dostępnych kodów działań dla bazy danych: UGNGEV #EVKQP 
  • 139. -QF FKC CPKC
  • 140.  0COG 
  • 141. 0CYC FKC CPKC VCMC LCM #.6'4 75'4
  • 142.  HTQO #7&+6A#%6+105 Jeśli kod działania jest znany, mo na wykorzystać perspektywę &$#A#7&+6A1$,'%6 w celu określenia wpływu tego działania na dany obiekt. Poni ej przedstawiono przy- kładowe zapytanie wyszukujące rekordy obserwacji logowania z perspektywy &$#A#7&+6A 1$,'%6. W ten sposób otrzymuje się informacje dotyczące zastosowanego konta syste- mu operacyjnego ( 15A7UGTPCOG), nazwę konta bazy danych Oracle (7UGTPCOG) oraz identyfikator +& wykorzystywanego terminala (6GTOKPCN). Wybrano dane dotyczące wła- ściciela obiektu (1YPGT) oraz nazwy obiektu (1DLA0COG) wraz z kodem działania (#EVKQPA 0COG) dla wykonanej czynności. Przeglądana jest kolumna 4GVWTPEQFG: wartość tej kolumny równa  oznacza próbę połączenia zakończoną powodzeniem, w przeciwnym razie po- dawany jest numer błędu. Wyświetlony jest równie czas zalogowania i wylogowania.
  • 143. Rozdział 10. Zabezpieczenie i monitorowanie bazy danych 401 UGNGEV 15A7UGTPCOG 
  • 144. 0CYC W [VMQYPKMC U[UVGOW QRGTCE[LPGIQ
  • 145.  7UGTPCOG 
  • 146. 0CYC MQPVC W [VMQYPKMC DC[ FCP[EJ 1TCENG
  • 147.  6GTOKPCN 
  • 148. +FGPV[HKMCVQT +& Y[MQT[UVCPGIQ VGTOKPCNC
  • 149.  1YPGT 
  • 150. 9 C EKEKGN QDKGMVW QFFKC [YCPKC
  • 151.  1DLA0COG 
  • 152. 0CYC QDKGMVW QFFKC [YCPKC
  • 153.  #EVKQPA0COG 
  • 154. -QF NKEDQY[ FKC CPKC
  • 155.  &'%1&' 4GVWTPEQFG   5WEEGUU 4GVWTPEQFG 
  • 156. 5RTCYFGPKG PKGRQYQFGPKC
  • 157.  61A%*#4 6KOGUVCOR &&/10;; **/+55 
  • 158. <PCEPKM ECUW
  • 159.  HTQO &$#A#7&+6A1$,'%6 Istnieje równie mo liwość ustawienia obserwacji poszczególnych u ytkowników. W tym celu wykorzystuje się klauzulę D[ WUGTPCOG polecenia CWFKV. Poni ej zamiesz- czono odpowiedni przykład. Efektem tego polecenia jest śledzenie wszystkich działań modyfikacji (polecenia WRFCVG) dokonywanych przez u ytkownika /%)4')14. CWFKV WRFCVG VCDNG D[ /%)4')14 Obserwacja obiektów Istnieje tak e mo liwość prowadzenia obserwacji działań manipulowania danymi. W tym przypadku śledzi się operacje na tabelach wykonywane za pomocą poleceń: UGNGEV, KPUGTV, WRFCVG oraz FGNGVG. Działania tego typu są obserwowane w bardzo podobny spo- sób, jak te opisane w poprzednim podrozdziale. Jedyną ró nicą jest dodanie nowej klauzuli w poleceniu CWFKV. Obserwacja sesji lub dostępu W celu prowadzenia obserwacji obiektów jest stosowana klauzula D[ UGUUKQP lub klau- zula D[ CEEGUU. Określają one, czy rekord obserwacji powinien być zapisany jeden raz dla ka dej sesji (klauzula D[ UGUUKQP) lub jeden raz dla ka dego uzyskania dostępu do obiektu (klauzula D[ CEEGUU). Na przykład, je eli podczas jednej sesji u ytkownik wy- konał cztery ró ne instrukcje modyfikacji WRFCVG na tej samej tabeli, wtedy wynikiem obserwacji z klauzulą D[ CEEGUU byłoby zapisanie czterech rekordów obserwacji — jeden zapis dla ka dego dostępu tabeli. Z drugiej strony obserwacja tej samej sytuacji z klau- zulą D[ UGUUKQP dałaby w rezultacie zapis tylko jednego rekordu obserwacji. Z powy szego wynika, e prowadzenie obserwacji z klauzulą D[ CEEGUU mo e radykal- nie zwiększyć szybkość zapisywania rekordów obserwacji. Ten typ obserwacji jest ge- neralnie wykorzystywany w ograniczonym zakresie w celu pomiaru liczby konkretnych działań zachodzących podczas określonego czasu. Po zakończeniu takiego testowania nale y ponownie zmienić tryb obserwacji na status D[ UGUUKQP. Odpowiednie przykłady wykorzystania omówionych wy ej opcji pokazano poni ej. Dzięki pierwszemu zapisowi obserwowane są wszystkie polecenia wstawiania (KPUGTV) wykonywane na tabeli '/2.1;''. Drugi wpis powoduje obserwację ka dego działania dotyczącego tabeli 6+/'A%#4&5. Trzecie polecenie powoduje obserwację wszystkich operacji usuwania (FGNGVG) wykonywanych na tabeli &'2#46/'06. W tym przypadku za- stosowano klauzulę D[ UGUUKQP.
  • 160. 402 Część II Zarządzanie bazą danych CWFKV KPUGTV QP 6*7/2'4'/2.1;'' CWFKV CNN QP 6*7/2'46+/'A%#4&5 CWFKV FGNGVG QP 6*7/2'4&'2#46/'06 D[ UGUUKQP Otrzymane rekordy obserwacji mogą być przeglądane za pomocą zapytania na per- spektywie &$#A#7&+6A1$,'%6. Przykład takiego zapytania znajduje się w poprzednim podrozdziale. Precyzyjna obserwacja obiektów Jedyną wadą obserwacji obiektów jest to, e mimo i mo na zorientować się, jaki obiekt był zmieniany i kto uzyskał do niego dostęp, brak jednak mo liwości sprawdzenia, jakie dane zostały zmienione i jakie były ich poprzednie wartości. Oracle9i wprowadza pakiet PL/SQL, który umo liwia precyzyjną obserwację obiektów, pomocną w śledzeniu uzy- skiwania dostępu do informacji w bazie danych oraz sposobu, w jaki były one zmieniane. Aby włączyć opcję precyzyjnej obserwacji obiektów, nale y utworzyć predykat SQL, który będzie opisywał warunki, dla jakich rekord obserwacji powinien zostać zapisany w dzienniku. Predykat SQL definiuje warunki dostępu do danych, które uruchomią ob- serwację obiektu. Aby tego dokonać i zarządzić precyzyjną obserwację, nale y u yć pakietu PL/SQL &$/5A()#. Działania, jakie mo na dzięki niemu podjąć, są następujące: CFFARQNKE[ — dodaje strategię precyzyjnej obserwacji tabeli lub perspektywy; FTQRARQNKE[ — usuwa strategię precyzyjnej obserwacji tabeli lub perspektywy; GPCDNGARQNKE[ — włącza politykę bezpieczeństwa dla tabeli lub perspektywy; FKUCDNGARQNKE[ — wyłącza politykę bezpieczeństwa dla tabeli lub perspektywy Dla przykładu przyjęto, e farmer McGregor chce obserwować ka dą osobę, która sprawdza aktualną liczbę marchwi (%#44165) w magazynie. Musi zatem utworzyć proce- durę, definiującą sposób, w jaki ma być powiadamiany o tym, e ktokolwiek wykonuje zapytanie na tabeli 241&7%' a następnie utworzyć odpowiednią politykę, aby ustanowić kryteria obserwacji. 
  • 161. FQFCL RQNKV[Mú
  • 162.  GZGE &$/5A()##&&A21.+%;  QDELGEVAUEJGOC  (/   QDLGEVAPCOG  241&7%'   RQNKE[APCOG  %*-A%#4416A%1706  CWFKVAEQPFKVKQP  8')'6#$.'  %#44165   CFKVAEQNWOP  37#06+6;   JCPFNGTAUEJGOC  5'%   JCPFNGTAOQFWNG  .1)A#%6+10   GPCDNG  647'  W opisywanym przykładzie politykę obserwacji stanowi przechwytywanie informacji o ka dym u ytkowniku, który wybiera wartość powiązaną z wpisem %#44165 w tabeli 241&7%'. Nale y tak e ustawić procedurę obsługi błędu, taką jak wyzwalacz, aktywo- waną, gdy spełnione będą warunki polityki. W tym przypadku będzie u ywany wyzwa- lacz .1)A#%6+10 w schemacie 5'%.
  • 163. Rozdział 10. Zabezpieczenie i monitorowanie bazy danych 403 Ochrona zapisu obserwacji Ze względu na składowanie tabeli zapisów obserwacji bazy danych 5;5#7& w bazie danych, wszystkie zapisywane tu rekordy obserwacji muszą być chronione. W przeciw- nym razie u ytkownik mo e dokonać próby usunięcia odpowiednich rekordów zapisów obserwacji po ewentualnym przeprowadzeniu nieautoryzowanych działań w bazie danych. Istnieje mo liwość rozwiązania tego problemu przez wprowadzenie mechanizmu zapisu rekordów obserwacji na poziomie systemu operacyjnego. Umo liwia to zachowanie re- kordów poza bazą danych. Jednak ta opcja nie jest dostępna w przypadku wszystkich systemów operacyjnych. Je eli zachodzi konieczność składowania informacji dotyczących zapisów obserwacji w tabeli 5;5#7& , jest wymagana ochrona tej tabeli. Pierwszym posunięciem jest ob- serwacja działań prowadzonych na tej tabeli za pomocą następującego polecenia: CWFKV CNN QP 5;5#7& D[ CEEGUU Wszystkie działania wykonywane na tabeli 5;5#7& (z wyjątkiem wstawień generowa- nych przez obserwacje innych tabel) są teraz rejestrowane w zapisie obserwacji. Wpisy w tabeli 5;5#7& mogą być usunięte tylko przez tych u ytkowników, którzy mają mo liwość połączenia wewnętrznego przez opcję %100'%6 PCYC W [VMQYPKMCJCU Q #5 5;5&$# (zatem są członkami grupy DBA). Ka de działanie wykonane podczas połą- czenia #5 5;5&$# jest automatycznie wprowadzane do zapisu obserwacji. Zaleca się prowadzenie skoordynowanej obserwacji bazy danych i systemu operacyjne- go. Ułatwia to śledzenie ewentualnych problemów i zapewnia skuteczniejszą ochronę całej aplikacji. Najczęściej osoby zarządzające systemami nie yczą sobie większej liczby zapisów obserwacji, a zatem administrator bazy danych jest zmuszony do przepro- wadzenia dokładnej analizy sposobu prowadzenia obserwacji. Nale y dą yć do sytuacji, w której ka dy rekord zapisu obserwacji jest istotny. Zastosowanie poleceń omówio- nych w niniejszym rozdziale umo liwia taką modyfikację opcji obserwacji działania bazy, aby śledzone były najistotniejsze punkty pracującej aplikacji. Zabezpieczenie w środowisku rozproszonym Otwieranie bazy danych przez inne serwery w celu uzyskania do niej dostępu powoduje powstanie potencjalnych zagro eń bezpieczeństwa ze strony tych serwerów. Ze wzglę- du na to, e dostęp ten jest realizowany za pomocą programu Oracle Net, odpowiednia modyfikacja parametrów tego programu mo e zapewnić większość zabezpieczeń prze- ciwko nieautoryzowanemu zdalnemu dostępowi. Szczegółowe informacje na temat aspektów bezpieczeństwa programu Oracle Net znajdują się w części III niniejszej ksią ki. Przewodnią zasadą powinno być, aby dostęp do danych odbywał się na zasa- dzie trzeba wiedzieć (aby dostać się do jakiegoś elementu bazy, trzeba wiedzieć jak to zrobić, znać hasło itd.). Rozszerzając tę zasadę, uzyskiwanie jakiegokolwiek dostępu do serwerów i systemu operacyjnego powinno się odbywać na zasadzie trzeba wiedzieć.
  • 164. 404 Część II Zarządzanie bazą danych Nale y okresowo przeglądać bie ące uprawnienia związane z dostępem do bazy danych oraz na poziomie systemu operacyjnego. Konieczna jest współpraca z zespołami zarzą- dzania systemami w celu oceny bie ących uprawnień dostępu sieciowego. Rozwiązania Efektywne zarządzanie bezpieczeństwem w bazie danych Oracle wymaga rozwiązania wszystkich zagadnień zabezpieczeń oraz prowadzenia obserwacji prób naruszenia za- bezpieczeń. Plan zabezpieczenia powinien zawierać przynajmniej następujące elementy: 1. Zmiana domyślnych haseł kont 5;5 oraz 5;56'/. 2. Regularna zmiana haseł dla wszystkich kont z uprawnieniami DBA. 3. Usunięcie utworzonych kont demonstracyjnych (jak 5%1666+)'4). 4. Zmiana hasła konta &$50/2 i umieszczenie nowego hasła w pliku snmp.ora. 5. Ustawienie odpowiednich poziomów ochrony dla wszystkich plików bazy danych. 6. Je eli opracowywana baza danych zawiera dane z produkcyjnej bazy danych, nale y upewnić się, e reguły bezpieczeństwa stosowane dla produkcyjnej bazie danych są równie zastosowane dla opracowywanej bazy danych. 7. Obserwacja wszystkich prób uzyskania dostępu do tabeli 5;5#7& . 8. Obserwacja wszystkich nieudanych prób połączenia. 9. Obserwacja wszystkich działań administratora bazy danych. 10. Regularne generowanie raportów wykazywania obserwacji oraz usuwanie nieaktualnych rekordów z tabeli 5;5#7& . 11. Zabezpieczenie kopii zapasowych bazy danych. 12. Zabezpieczenie pomieszczeń, w których znajdują się serwer bazy danych oraz kopie zapasowe. Przestrzeganie wszystkich zasad wyszczególnionych powy ej umo liwi zabezpieczenie bazy danych. Jak wspomniano wcześniej w tym rozdziale, w dalszym ciągu jest koniecz- na współpraca administratora bazy danych z zespołami zarządzania systemem oraz zarzą- dzania siecią w celu wyeliminowania uzyskiwania nieautoryzowanego dostępu do sys- temu operacyjnego serwera.