Realna baza wirtualna

Nazwa Oracle 9.2 sugerowałaby, że w nowej wersji bazy dokonano jedynie kosmetycznych zmian. Nic bardziej błędnego.

Nazwa Oracle 9.2 sugerowałaby, że w nowej wersji bazy dokonano jedynie kosmetycznych zmian. Nic bardziej błędnego.

W Oracle 9.2 jest dostępny mechanizm wirtualnych prywatnych baz danych (VPD). Pozwala on określić zasady udostępniania poszczególnych wierszy w bazie. Można zdefiniować warunki i wskazać "podzbiór" danych z określonej tabeli, dostępny tylko dla danego użytkownika. Tak więc w bazie można ustalać prawa dostępu zarówno pionowo - do poszczególnych tabel, widoków czy kolumn, jak i poziomo - do kolumn, które spełniają określone reguły ustanowione przez administratora.

Warto zaznaczyć, że w Oracle 9.2 istnieje możliwość precyzyjnego określania mechanizmów audytu. Można zażądać, by trigger związany z określonymi warunkami był wyzwalany dopiero w momencie, gdy zostanie wybrana konkretna kolumna z bazy. Na przykład system audytu nie reaguje na wybór imion i nazwisk z tabel aplikacji HR, ale już w przypadku wyboru kolumny "pensje" uruchomi się odpowiednia procedura i zostanie zarejestrowana informacja, kto chciał uzyskać dane o wynagrodzeniach.

Analogiczny mechanizm można osiągnąć, konstruując odpowiednio wyrażenia SQL. Ale fakt, że bezpieczeństwo i prawo dostępu na poziomie wierszy kontroluje baza danych, znacznie upraszcza logikę aplikacji. Użytkownik ma dostęp tylko do tych danych, które spełniają określone warunki. Przykładowo, jeżeli pracownik ma prawo przeglądać w danej tabeli transakcje o wartości poniżej 10 tys. zł, to nawet polecenie "wybierz wszystkie wiersze" wykonane przez aplikację zwróci tylko odpowiedni wycinek tabeli. W przypadku gdy aplikacja realizuje tę funkcję, a nie baza, użytkownik niemal zawsze może ominąć to ograniczenie, chociażby wydając ręcznie zapytanie za pośrednictwem SQL*Plus. Aplikacja musi "pilnować", by warunki dotyczące praw dostępu były sprawdzane w każdym miejscu programu.

Dzięki VPD wiele operacji uproszczono. Termin "wirtualna baza danych" ma swoje uzasadnienie - z punktu widzenia użytkownika, dysponuje on własną bazą, która zawiera tylko te dane, do których przysługują mu uprawnienia.

Mechanizm wirtualnych baz prywatnych jest dostępny wraz z Enterprise Edition. Oracle oferuje jeszcze rozszerzenie serwera o nazwie Label Security. Przy jego zastosowaniu mechanizm konstruowania "praw dostępu do wiersza", oparty na wirtualnej bazie prywatnej, dodatkowo zostaje uproszczony. Do każdego rekordu jest dodawany specjalny znacznik (tag). W momencie próby dostępu porównywana jest etykieta rekordu z uprawnieniami użytkownika.

Mechanizm zarządzania znacznikami opiera się na definicji trójwymiarowej kostki, w której są określane poziomy dostępu, przedziały i grupy. Niezależnie można definiować prawa do zapisu i odczytu.

Internet na kilka sposobów

Programista, chcący udostępnić zawartość bazy danych Oracle w Internecie, może to osiągnąć różnymi metodami.

Opracowywany przez Oracle'a język XSQL ma pozwolić na efektowne tworzenie zapytań i opakowywanie ich w dokument XML. Specjalny motor stron XSQL przetwarza je i generuje dokument XML. Następnie, korzystając z servletu XSQL, dodaje się odpowiednią transformację, która przekształci dokument XML do postaci nadającej się do publikacji. Może to być np. strona HTML.

W ramach pakietu XDK (pakiet Oracle'a dla programistów przeznaczony do obsługi XML) jest dostępny moduł pozwalający na integrację XSL-FO z XSQL. XSL-FO jest standardem precyzyjnie definiującym wygląd strony, której treść powstaje na podstawie dokumentu XML. O ile XSL pozwala wygenerować strony HTML, o tyle XSL-FO umożliwia tworzenie dokumentów przeznaczonych do druku - ten standard pozwala tworzyć systemy DTP zasilane dokumentami XML. XDK można łatwo zintegrować z Apache FOP - implementacją motoru XSL-FO. W ten sposób z jednej strony XSQL może powstać zarówno dokument HTML, jak i np. raport, gotowy do wydruku i prezentacji. XSQL + XDK + FOP jest dosyć potężnym narzędziem raportowania.

Strony HTML można także generować bezpośrednio z procedur przechowywanych PL/SQL. Programista musi otworzyć w tym celu daną sekcję strony HTML i np. w pętli wysłać kody definiujące tabelę.

Istnieje też możliwość tworzenia tzw. stron PL/SQL Server Pages (PSP), łączących kody HTML i PL/SQL. Umiejętnie integrując te elementy, można tworzyć strony z dynamiczną zawartością, tak samo jak strony JSP. Strony PSP mogą być uruchamiane albo za pośrednictwem serwera aplikacyjnego Oracle 9iAS, albo WWW opartego na Apache i dostarczanego razem z bazą 9i.

Jeżeli oprócz bazy Oracle ma być wykorzystywany serwer aplikacyjny Javy, wówczas strony mogą być tworzone albo jako servlety (specjalne klasy Javy generujące strony HTML), albo jako strony JSP, w których są łączone kod Javy i definicja wyglądu strony HTML.

Jeden z referatów podczas konferencji użytkowników Oracle'a - PLOUG 2002 - poświęcono różnym technikom tworzenia aplikacji internetowych. Dokonano porównania PHP, servletów, JSP, Perl i PSP, z którego wynikało, że nie ma tak naprawdę "najlepszego wyboru". Wydajność zależy od tego, jakiego typu operacje wykonuje dana strona i jak jest tworzona pula połączeń lub buforowanie połączeń, tzn. jak intensywnie komunikuje się z bazą.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200