sql >> Databáze >  >> RDS >> Oracle

Rozdíl mezi dotazem na oprávnění v tabulkách

Jsou docela odlišné, ano.

V Oracle mohou být oprávnění k tabulce udělena buď přímo uživateli (v takovém případě by se objevila v ALL_TAB_PRIVS ) nebo lze roli udělit oprávnění (viditelné v ROLE_TAB_PRIVS ) a tuto roli lze udělit uživateli (viditelné v USER_ROLE_PRIVS ). První dotaz vám ukáže uživatele, kteří mají v tabulce přímé granty. Druhý dotaz vám ukáže uživatele, kterým byla udělena role, jimž byl udělen přístup k tabulce (všimněte si, že v obou případech byste skutečně měli zadat OWNER kromě názvu tabulky). Ani jeden vám neukáže informace o uděleních, které byly provedeny prostřednictvím více vnořených úrovní rolí (tj. Uživateli A byla udělena role 1, Role 1 byla udělena role 2, Role 2 byl udělen přístup k tabulce). Udělení udělení prostřednictvím rolí může být také trochu složitější, protože existují výchozí a nevýchozí role a role a role chráněné heslem lze povolit a zakázat v relaci.

Obecně bych navrhoval podívat se na skripty dostupné na webu Petea Finnigana pokud chcete mít něco, co pokryje všechny možné případy. V tomto případě budete pravděpodobně chtít použít jeho who_can_access skript určit, kteří uživatelé mohou přistupovat ke konkrétní tabulce.




  1. Jak získat název schématu databáze při použití připojení Oracle jdbc?

  2. Co dělat s nulovými hodnotami při modelování a normalizaci?

  3. Django nesprávně očekává sloupec id

  4. Jak automatizovat dotazy na kontingenční tabulky v MySQL