464 7 SYSTEMOWE ASPEKTY JĘZYKA SOL T
PRZYKŁAD 7.25
Przedstawimy teraz za pomocą abstrakcyjnych przykładów kilka problemów bardziej subtelnych. Po pierwsze, jeśli odbiera się pewne ogólne prawa p, to nie oznacza, że odbiera się jakiś ich podzbiór, nadany osobno. Rozważmy następujący ciąg działań, gdzie użytkownik U- właściciel relacji R - nadaje prawo insert do R użytkownikowi V, a poza tym nadaje dodatkowo prawo do insert (A) do tej samej relacji.
Nr czynności |
Kto |
Czynność |
1 |
U |
GRANT INSERT ON R TO V |
2 |
U |
GRANT INSERT(A) ON R TO V |
3 |
U |
REVOKE INSERT ON R FROM V RESTRICT |
Po odebraniu prawra INSERT od V ma on nadal prawo INSERT (A). Ma rysunku 7.17 przedstawiono diagram grant powstały kolejno w czynnościach 2 i 3.
(a) Po czynności 2 (b) Po czynności 3
RYSUNEK 7.17
Po odebraniu praw ogólnych prawa szczegółowe obowiązują nadal
Zauważmy, że po czynności 2 istnieją dwa oddzielne wierzchołki z podobnymi, ale nieidentycznymi prawami użytkownika V. Zauważmy także, że opcja RESTRICT w czynności 3 nie zapobiegnie odebraniu prawr, ponieważ, użytkownik V nie udzielał praw innym użytkownikom. A w ogóle nie mógł ich nadawać, ponieważ otrzymał je bez opcji grant.
□
PRZYKŁAD 7.26
Rozważmy teraz podobny przykład, w którym U nadaje użytkownikowi V prawo p z opcją grant, a potem odbiera tylko tę opcję. W tym przypadku trzeba zmienić w-ierzchołek odpowiadający V po to, by widać było zmianę ro-dząju praw posiadanych przez użytkownika V, oraz trzeba usunąć wszystkie krawędzie ilustrujące nadanie prawa p przez użytkownika V. Zostanie wykonany następujący ciąg instrukcji:
Nr czynności |
Kto |
Czynność |
1 |
U |
GRANT p TO V WITH GRANT OPTION |
2 |
V |
GRANT p TO W |
3 |
U |
RE70KE GRANT OPTION FOR p FROM V CASCADE |
W pierwszej instrukcji U nadaje prawa p użytkownikowi V z opcją grant. W czynności 2 Vkorzysta z opcji grant i udziela praw'/? do W. Diagram został przedstawiony na rys. 7.18(a).
RYSUNEK 7.18
Przy odebraniu prawa do nadawania praw. prawa uprzednio nadane obowiązują nadal
(b) Po kroku 3
Następnie w czy nności 3 użytkownik U odbiera użytkownikowi V opcję grant do praw p, ale nie odbiera samych praw. A więc znika gwiazdka z wierzchołka VIp. Ale z wierzchołka pozbawionego * nie może wychodzić żadna krawędź, ponieważ taki wierzchołek nie może być źródłem praw'. A więc trzeba usunąć także krawędź wychodzącą z wierzchołka V/p, która prowadzi do w ierzchołka W/p.
Teraz z kolei do wierzchołka W/p nie dochodzi żadna ścieżka rozpoczynająca się w wierzchołku z dwiema gwiazdkami, który jest źródłem praw p, a zatem wierzchołek W/p zostaje usunięty z diagramu. Ale wierzchołek V/p pozostaje. Zmienił się tylko typ tego wierzchołka, znikła gwiazdka, oznaczająca opcję grant. Wynikowy diagram grant został przedstawiony na rys. 7.18(b).
□
Ćwiczenie 7.4.1. Należy podać, jakie są niezbędne prawa do uruchomienia następujących zapytań. W każdym przypadku należy- podać prawa minimalne oraz ogólne które wystarczają do uruchomienia zapytania.
a) Zapytanie z rys. 5.3.
b) Zapylanie z rys. 5.5.
*c) Wstawienie z rys. 5.12.