Cómo Encontrar Usuarios con Rol DBA en Oracle
El rol DBA predeterminado se crea automáticamente durante la instalación de la base de datos de Oracle. Este rol contiene la mayoría de los privilegios del sistema de base de datos. Por lo tanto, el rol de DBA debe otorgarse solo a los administradores de bases de datos reales. Si desea saber a qué usuarios se les ha concedido el rol dba, debe consultar el dba_role_privs en el esquema SYS.
El rol DBA no incluye los privilegios del sistema SYSDBA o SYSOPER. Estos son privilegios administrativos especiales que permiten a un administrador realizar tareas básicas de administración de la base de datos, como crear la base de datos y el inicio y apagado de la instancia.
Este rol le indica al concesionario, granted_role, si tiene la opción de administrador otorgada y si el rol es su rol predeterminado:
USER_ROLE_PRIVS describe los roles otorgados al usuario actual.
SQL>desc dba_role_privs
Name Null? Tipo
—- — —-
BENEFICIARIO VARCHAR2(30)
FUNCIÓN ASIGNADA NO NULA VARCHAR2 (30)
ADMIN_OPTION VARCHAR2 (3)
FUNCIÓN PREDETERMINADA VARCHAR2(3)
CONCESIONARIO: Nombre del usuario o rol que recibe la subvención
——
GRANTED_ROLE: Nombre de rol concedido
———
ADMIN_OPTION: Indica si la concesión estaba con la OPCIÓN ADMIN (SÍ) o no (NO)
———
FUNCIÓN PREDETERMINADA: Indica si el rol está designado como un ROL PREDETERMINADO para el usuario (SÍ) o no (NO)
Mediante la siguiente consulta, puede encontrar usuarios con privilegios de DBA
SQL> select * from dba_role_privs where granted_role='DBA';
GRANTEE GRANTED_ROLE ADM DEF
--------- ------------ --- ---
SYS DBA YES YES
SYSTEM DBA YES YES
Hay muchas situaciones en las que quería revocar los roles de DBA otorgados al usuario por razones de seguridad. La consulta anterior le ayudará a encontrar los usuarios que tienen privilegios de DBA.