17514 ullman224 (2)

17514 ullman224 (2)



454 7 SYSTEMOWE ASPEKTY JĘZYKA SQI.

7.4. Bezpieczeństwo i autoryzacja użytkownika w języku SQL2

Wskazania SQL2 dotyczące bezpieczeństwa zawierają między innymi zalecenie, aby użytkownicy mieli identyfikatory (ID) autoryzujące, najczęściej jest to po prostu nazwisko. Istnieje także wyróżniony identyfikator PUBLIC, z którego może korzystać dowolny użytkownik. Identyfikatorom przypisuje się prawa, których struktura pokrywa się z prawami systemu plików' i systemu operacyjnego. Na przykład w systemie UN1X w zasadzie określa się trzy rodzaje praw: czytania odczytu, pisania i wykonywania. Taka lista praw ma sens, ponieważ w systemie UNTX chroni się pliki, a wymienione trzy prawa dobrze określają działania, które można wykonywać na plikach. Jednakże bazy danych są bardziej złożone niż system plików, a więc struktura praw w języku SQL2 jest proporcjonalnie bardziej złożona.

Najpierw dowiemy się, jakie prawa można w języku SQL2 określać do poszczególnych elementów baz danych. Potem opiszemy, w jaki sposób przypisuje się je użytkownikom (identyfikowanym przez ID). W końcu dowiemy się, jak skasować pewne prawa.

7.4.1. Prawa

SQL2 określa następujące prawa:

1.    SELECT (wybór)

2.    INSERT (wstawianie)

3.    DELETE (usuwanie)

4.    U?DATĘ (aktualizacja)

5.    REFERENCES (odwołanie się)

6.    "SAGĘ (stosowanie)

Pierwsze cztery' prawa są określane dla relacji, czyli albo dla tabeli podstawowej, albo dla perspekty wy. Zgodnie z nazwami zapewniają one możliwość wykonywania kolejno: zapytań o krotki relacji (select from), wstawiania nowych krotek, usuwania krotek oraz zmiany wartości w krotkach danej relacji. Nie można wykonywać modułu zawierającego instrukcje SQL, jeśli nie określi się praw' wykonywania tych instrukcji na relacjach, których mają dotyczyć. Wkrótce dowiemy się, w jaki sposób określać prawa dla modułów'.

Z kolei prawo REFERENCES dotyczy' możliwości odwołania się do danej struktury w więzach integralności. Więzy można zadawać w dowolny sposób opisany w rozdziale 6. czyli mogą to być asercjc, więzy' atrybutowe lub kratkowe, lub też więzy integralności referencyjnej. Więzów nie sprawdza się, jeśli nie nada się praw' REFERENCES na schematy, z których pobiera się dane sprawdzane w więzach.

Z* OUruxusn3invi nvivniŁnM« u«.i ii%wni»iw> ..    łlxw ..

Prawo tiSAGE określa się dla dziedzin i elementów schematu innych ni relacje i asercje (p. 7.3.2) i umożliwia ono korzystanie z tych elementó\ w deklaracjach.

Dla trzech praw: insert, UPDATE i REFERENCES argumentem moż być pojedynczy atrybut. Wówczas prawo dotyczy tylko tego jednego atrybi tu. Można określić kilka praw na pojedynczych atrybutach, w ten sposó można autoryzować dostęp do pewnych podzbiorów kolumn tabeli.

PRZYKŁAD 7.20

Zastanówmy się, jakie prawa są potrzebne, aby wykonać instrukcję wstawi; nia z rys. 5.12; została ona powtórzona na rys. 7.14. Po pierwsze jest to wst wienie do relacji Studio, a zatem trzeba mieć prawo INSERT do relacji Stu dio. Ponieważ w instrukcji INSERT jest określona tylko wartość atrybul nazwa, a więc można albo nadać prawo INSERT, albo prawo im SERT (nazwa) dla relacji Studio. Ta druga postać umożliwia wstawianie c relacji Studio tylko takich krotek, dla których określa się nazwę studi a wartości pozostałych atrybutów' są albo standardowe, albo NrJLL, a właśn tak działa instrukcja przedstawiona na rys. 7.14.

1)    INSERT INTO Studio(nazwa)

2)    SELECT DISTINCT nazwaStudia

3)    FROM Film

4)    WHERE nazwaStudia NOT IN

5)    (SELECT nazwa

6)    FROM Studio);

RYSUNEK 7.14 Dołączanie nowego studia

Zwróćmy jednak uwagę na to, że w instrukcji INSERT na rys. 7.14 w stępują również dwa podzapytania, w wierszach 2) i 5). Ich wykonanie w maga określenia dodatkowych praw. Potrzeba prawa typu SELECT dla rela umieszczonych w klauzulach FROM: Film oraz studio. Zauważmy, że pra^ typu INSERT dla relacji Studio nie oznacza, że posiada sic prawo SRLE dla tej relacji, ani też odwrotnie.

7.4.2. Tworzenie praw

Wiemy już, jakie prawa można określać w SQL2 i żc muszą one być ] dane po to, by można było wykonać działania na relacjach. Teraz jeszi trzeba się dow iedzieć, w jaki sposób otrzymuje się takie prawa. Są tu d elementy: w jaki sposób tworzyć je początkowo oraz jak przekazywać je m dzy użytkownikami. Inicjowanie praw będzie opisane poniżej, a przesyła ich między użytkownikami w p. 7.4.4.


Wyszukiwarka

Podobne podstrony:
42485 ullman206 (2) 41$ 7. SYSTEMOWE ASPEKTY JĘZYKA SQI.7.1.2. Interfejs między językiem SQL i
47839 ullman216 (2) 438 7. SYSTEMOWE ASPEKTY JĘZYKA SQI. do. Wartości atrybutów określają więc numer
ullman219 (2) 444 7. SYSTEMOWI! ASPEKTY JĘZYKA SQI. Jak bardzo istotny jest fakt, że odczytano warto
33755 ullman226 (2) 458 7. SYSTEMOWE ASPEKTY JĘZYKA SQI. sesji, którą autoryzuje użytkownik stefan.
18974 ullman230 (2) 400 7. SYSTEMOWE ASPEKTY JĘZYKA SQL d)    Usuwanie z przykładu 5.
ullman208 (2) 422 7. SYSTEMOWE ASPEKTY JĘZYKA SQL PRZYKŁAD 7.3 Przedstawimy tu funkcję C. która służ
51873 ullman225 (2) 430 7. SYSTEMOWE ASPEKTY JĘZYKA SQL Po pierwsze należy wiedzieć, że wszystkie el

więcej podobnych podstron