jak najít uživatele, kteří mají roli DBA v Oracle
výchozí role DBA se automaticky vytvoří během instalace databáze Oracle. Tato role obsahuje většinu oprávnění databázového systému. Úloha DBA by proto měla být udělena pouze skutečným správcům databází. Pokud chcete vědět, kterým uživatelům byla udělena role dba, musíte se zeptat na dba_role_privs ve schématu SYS.
role DBA nezahrnuje oprávnění systému SYSDBA nebo SYSOPER. Jedná se o speciální administrátorská oprávnění, která umožňují správci provádět základní úkoly správy databáze, jako je vytvoření databáze a spuštění a vypnutí instance.
tato role vám řekne příjemci grantu, granted_role, zda mají možnost Správce udělena, a zda role je jejich výchozí role:
USER_ROLE_PRIVS popisuje role přidělené aktuálnímu uživateli.
SQL> desc dba_role_privs
Název Null? Typ
—- — —-
GRANTEE VARCHAR2 (30)
GRANTED_ROLE NOT NULL VARCHAR2 (30)
ADMIN_OPTION VARCHAR2 (3)
DEFAULT_ROLE VARCHAR2(3)
příjemce grantu: jméno uživatele nebo role, která je příjemcem grantu
——
GRANTED_ROLE: udělený název role
———
ADMIN_OPTION: označuje, zda byl grant s možností ADMIN (ano) nebo ne(ne)
———
DEFAULT_ROLE: Označuje, zda je role určena jako výchozí ROLE pro uživatele (ano) nebo ne (ne)
pomocí níže uvedeného dotazu můžete najít uživatele, kteří mají oprávnění DBA
SQL> select * from dba_role_privs where granted_role='DBA';
GRANTEE GRANTED_ROLE ADM DEF
--------- ------------ --- ---
SYS DBA YES YES
SYSTEM DBA YES YES
existuje mnoho situací, kdy jste chtěli zrušit role DBA udělené uživateli z bezpečnostních důvodů. Výše uvedený dotaz vám pomůže najít uživatele, kteří mají oprávnění DBA.