Come trovare gli utenti con ruolo DBA in Oracle
Il ruolo DBA predefinito viene creato automaticamente durante l’installazione del database Oracle. Questo ruolo contiene la maggior parte dei privilegi di sistema del database. Pertanto, il ruolo DBA dovrebbe essere concesso solo agli amministratori di database effettivi. Se si desidera sapere a quali utenti è stato concesso il ruolo dba, è necessario interrogare dba_role_privs nello schema SYS.
Il ruolo DBA non include i privilegi di sistema SYSDBA o SYSOPER. Si tratta di privilegi amministrativi speciali che consentono a un amministratore di eseguire attività di amministrazione di base del database, come la creazione del database e l’avvio e l’arresto dell’istanza.
Questo ruolo indica al beneficiario, granted_role, se è stata concessa l’opzione admin e se il ruolo è il ruolo predefinito:
USER_ROLE_PRIVS descrive i ruoli concessi all’utente corrente.
SQL> desc dba_role_privs
Nome Null? Tipo
—- — —-
BENEFICIARIO VARCHAR2(30)
GRANTED_ROLE NOT NULL VARCHAR2(30)
ADMIN_OPTION VARCHAR2(3)
DEFAULT_ROLE VARCHAR2(3)
BENEFICIARIO: Nome dell’utente o del ruolo che riceve la sovvenzione
——
GRANTED_ROLE: è un dato ruolo nome
———
ADMIN_OPTION: Indica se l’assegno è stato con l’ADMIN OPZIONE (SÌ) o non(NO)
———
DEFAULT_ROLE: Indica se il ruolo è designato come RUOLO PREDEFINITO per l’utente (SÌ) o no (NO)
Utilizzando la query sottostante è possibile trovare utenti con privilegi DBA
SQL> select * from dba_role_privs where granted_role='DBA';
GRANTEE GRANTED_ROLE ADM DEF
--------- ------------ --- ---
SYS DBA YES YES
SYSTEM DBA YES YES
Ci sono molte situazioni in cui si desidera revocare i ruoli DBA concessi all’utente per motivi di sicurezza. La query di cui sopra ti aiuterà a trovare gli utenti con privilegi DBA.