Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Różnica między zapytaniami o uprawnienia w tabelach

Są zupełnie inne, tak.

W Oracle uprawnienia do tabeli mogą być przyznawane bezpośrednio użytkownikowi (w takim przypadku pojawią się one w ALL_TAB_PRIVS ) lub uprawnienia można nadać roli (widoczne w ROLE_TAB_PRIVS ) i tę rolę można nadać użytkownikowi (widoczne w USER_ROLE_PRIVS ). Pierwsze zapytanie pokaże Ci użytkowników, którzy mają bezpośrednie przydziały w tabeli. Drugie zapytanie pokaże Ci użytkowników, którym przyznano rolę, która uzyskała dostęp do tabeli (pamiętaj, że w obu przypadkach naprawdę powinieneś określić OWNER oprócz nazwy tabeli). Żadna z nich nie pokaże informacji o nadaniach, które zostały wykonane przez wiele zagnieżdżonych poziomów ról (tj. Użytkownik A otrzymał rolę 1, rola 1 została przyznana rola 2, rola 2 otrzymała dostęp do tabeli). Dotacje dokonywane za pośrednictwem ról mogą być również nieco skomplikowane, ponieważ istnieją role domyślne i inne niż domyślne, a role chronione hasłem i role mogą być włączane i wyłączane w sesji.

Ogólnie sugeruję zapoznanie się z skryptami dostępnymi na stronie Pete'a Finnigana jeśli chcesz mieć coś, co obejmuje wszystkie możliwe przypadki. W takim przypadku prawdopodobnie chcesz użyć jego who_can_access aby określić, którzy użytkownicy mogą uzyskać dostęp do określonej tabeli.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Plan realizacji Oracle

  2. Jak używać ograniczeń sprawdzania Oracle, aby ograniczyć liczbę rejestracji?

  3. Jak rozwiązywać problemy z ORA-02049 i ogólnie blokować problemy z Oracle?

  4. jak przenieść dane CLOB z jednej bazy danych do innej zdalnej bazy danych ORACLE posiadającej DBLinks

  5. jak wykonać wiele zapytań Oracle c#