51873 ullman225 (2)

51873 ullman225 (2)



430 7. SYSTEMOWE ASPEKTY JĘZYKA SQL

Po pierwsze należy wiedzieć, że wszystkie elementy, takie jak schematy lub moduły, w języku SQL mają swoich właścicieli. Właściciel ma z racji swojego statusu wszystkie prawa, które są związane z danym obiektem. Przy' określeniu praw własności w SQL2 występują trzy elementy:

1.    Przy tworzeniu schematu zakłada się, że jego właścicielem oraz właścicielem wszystkich elementów schematu, takich jak tabele, jest ten użytkownik, który utworzył schemat. Ten użytkownik posiada wówczas wszystkie możliwe prawa potrzebne do korzy stania ze schematu.

2.    Przy otwieraniu sesji przez instrukcję CONNECT istnieje możliwość wskazania użytkownika; służy do tego klauzula USER. Na przykład następująca instrukcja:

CONNECT TO Konstelacja-sal-serwer AS connl USER karol;

spowoduje utworzenie połączenia o nazwie cenni z serwerem o nazwie Kor.stelacja-scl-serwer i odpowiedzialny za tę sesję jest użytkownik identyfikowany jako Karol. Najczęściej implementacja SQL sprawdza autentyczność użytkownika, pytając na przykład o hasło.

3.    Przy tworzeniu modułu można określać jego właściciela, stosując klauzulę AUTHORIZATION. Nic będziemy się zagłębiać w szczegóły dotyczące modułów; ponieważ jest to fragment SQL2, który pozostawia sporo swobody, jeśli chodzi o implementacje. Można jednak wyobrazić sobie pewien schemat, gdzie klauzula

AUTHORIZATION piotr;

występująca w instrukcji definicji modułu powoduje, że użytkownik o ID piotr staje się właścicielem tego modułu. Jeśli nie określi się właściciela modułu, to może go wykonywać każdy, ale prawa do wykonywania poszczególnych działań na poszczególnych tabelach muszą być nadane użytkownikowi, który ten moduł uruchamia w danym połączeniu i danej sesji.

7.4.3. Procedura sprawdzania praw dostępu

Jak już wiemy, każdy moduł, schemat i sesja są powiązane z określonym użytkownikiem; w nomenklaturze SQL mówi się, żc dla każdego elementu zostaje określona autoryzacja. Każde działanie w systemie SQL ma dw ie części:

1.    Elementy bazy danych, na który ch działania są wykonywane.

2.    Agent, który te działania wykonuje.

Prawa agenta są określane dynamicznie na podstawie bieżącej identyfikacji. Jest to albo:

a)    ID wynikające z autoryzacji modułu, jeśli moduł uruchamiany jako agent ma określone ID autoryzacji, albo

b)    ID wynikające z autoryzacji sesji.

W systemie SQL operacja może zostać wykonana wyłącznie wtedy, kiedy bieżąca autory zacja ma wszystkie niezbędne w tym celu prawa dostępu.

PRZYKŁAD 7.21

Mechanizmy egzekwowania praw dostępu prześledzimy na działaniach z przykładu 7.20. Można założyć, że tabele używane w tym przykładzie: Film i Studio są elementami schematu o nazwie SchematFilm, którego właścicielem jest użytkownik janka. Użytkownik janka ma wszystkie pra-wa do tabel i innych elementów- schematu Schemat Filia. Może ona nadawać prawa do tych elementów innym użytkownikom dzięki mechanizmom, które zostaną przedstawione w p. 7.4.4, ale na razie zakładamy, że żadne prawa nie zostały jeszcze nadane. Wstawienie z przykładu 7.20 może zostać wykonane na kilka różnych sposobów.

1.    Można je wykonać jako fragment modułu utworzonego przez użytkownika janka z zastosowaniem klauzuli AUTHORI ZATION janka. Jeśli ID autoryzujące moduł zostało określone, to pokrywa się ono z autoryzacją bieżącą. Wówczas i moduł i instrukcja INSERT w nim zawarta mają takie same prawa jak użytkownik janka, a więc wszystkie prawa do tabel Film i Studio.

2.    Wstawienie może być także fragmentem modułu, dla którego nie określono właściciela. Użytkownik janka otwiera połączenie, używając w instrukcji CONNECT TO klauzuli USER janka. Wówczas janka jest identyfikatorem bieżącym autoryzującym dostęp, co gwarantuje wszystkie niezbędne prawa dostępu.

3.    Użytkownik janka nadaje wszystkie prawa dostępu do tabel Film i Studio użytkownikowi stefan albo użytkownikowi PUBLIC, którym może być każdy. Instrukcja wstawiania występuje teraz w module, który ma klauzulę

AUTHORIZATION stefan

Ponieważ stefan posiada autoryzację bieżącą i ma wszystkie potrzebne prawfa dostępu, więc wstawienie jest możliwe.

4.    Podobnie jak w punkcie 3 użytkownik stefan otrzymał prawa od użytkownika janka. Instrukcja wstawiania znajduje się w module, dla którego nie został określony właściciel, a jest on uruchamiany podczas


Wyszukiwarka

Podobne podstrony:
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ż
42485 ullman206 (2) 41$ 7. SYSTEMOWE ASPEKTY JĘZYKA SQI.7.1.2. Interfejs między językiem SQL i
ullman231 (2) 7. SYSTEMOWI- ASPEKTY JEŻYKA SQL szenia nie wrażliwość i, sckwencyjności ani innych me
60359 ullman222 (2) *+_)U 7. SYSTEMOWE ASPEKTY JĘZYKA SQL. f Schemat bieżący można modyfikować,
63643 ullman207 (2) T 7. SYSTEMOWE ASPEKTY JĘZYKA SQL void podajStudio{ ) { 1)    EXS
17514 ullman224 (2) 454 7 SYSTEMOWE ASPEKTY JĘZYKA SQI.7.4. Bezpieczeństwo i autoryzacja użytkownika
47839 ullman216 (2) 438 7. SYSTEMOWE ASPEKTY JĘZYKA SQI. do. Wartości atrybutów określają więc numer

więcej podobnych podstron