Uprawnienia w BD

0

Witajcie!
Mam pytanie czysto teoretyczne aby sie upewnic czy dobrze mysle.

Więc:
W bazie jest 4 uzytkowników US1...US4. i kto bedzie mial prawo do SELECTA na tablicy us1.t?

Ciąg zapytań:

us1: grant select on us1.t to us2 with grant option
us2: grant select on us1.t to us3 with grant option
us3: grant select on us1.t to us2;
us1: grant select on us1.t to us4 with grant option;
us1: revoke select on us1.t from us2;

Wiec ja to widzę tak:

  • us1 daje pozwoleniu us2 na select na us1.t z mozliwoscia przydzielania uprawnienia dalej
  • us2 robi to samo co wyzej tylko dla us3
  • us3 daje selecta us2 tylko
  • us1 daje selecta i mozliwosc przekazywania go dalej uzytkownikowi us4
  • us4 daje select us3
  • us1 zabiera selecta na tablicy dla us2

Podsumowanie: Mysle ze wszyscy beda mieli dostep do tej tablicy, poniewaz wszyscy otrzymali uprawnienia nadawania SELECTA. Pomimo ze us1 zabral SELECTA us2 to ten us2 moze sobie na nowo tego SELECTA przydzielic dla siebie gdy ktos mu go usunie.

Czy dobrze mysle>? Jesli nie to prosze o poprawienie

0

W przedostatniej linijce ciagu zapytan jest US4 a nie US1

0
easy napisał(a):

W przedostatniej linijce ciagu zapytan jest US4 a nie US1

Przed ostatnia linijka jest jeszcze jedna zapytanie: us4:grant select on us1.t to us3; !!!!!Przepraszam za błąd. Napisalem ze jest US4 zamiast US1 i to jest zle. To zostaje tak jak jest. Brakuje tylko tej linijki co napisalem powyżej.

0

Jak nie jesteś pewien, sprawdź empirycznie.
Dostęp będzie miał tylko us1 i us4. Po operacji us1: revoke select on us1.t from us2; zostaną zabrane także granty, do obiektu, które us2 nadał (i cały 'łańcuszek' grantów, który powstał).

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0