Comment Trouver des utilisateurs ayant un rôle DBA dans Oracle
Le rôle DBA par défaut est automatiquement créé lors de l’installation de la base de données Oracle. Ce rôle contient la plupart des privilèges du système de base de données. Par conséquent, le rôle DBA ne devrait être accordé qu’aux administrateurs de base de données réels. Si vous voulez savoir quels utilisateurs ont reçu le rôle dba, vous devez interroger le dba_role_privs dans le schéma SYS.
Le rôle DBA n’inclut pas les privilèges système SYSDBA ou SYSOPER. Il s’agit de privilèges d’administration spéciaux qui permettent à un administrateur d’effectuer des tâches d’administration de base de données, telles que la création de la base de données et le démarrage et l’arrêt de l’instance.
Ce rôle vous indique au bénéficiaire, granted_role, s’il a l’option admin accordée et si le rôle est son rôle par défaut :
USER_ROLE_PRIVS décrit les rôles accordés à l’utilisateur actuel.
SQL > desc dba_role_privs
Nom Null ? Type
—- — —-
VARCHAR2(30)
GRANTED_ROLE NOT NULL VARCHAR2(30)
ADMIN_OPTION VARCHAR2(3)
DEFAULT_ROLE VARCHAR2(3)
BÉNÉFICIAIRE : Nom de l’utilisateur ou du rôle recevant la subvention
——
GRANTED_ROLE : Nom de rôle accordé
———
ADMIN_OPTION : Indique si la subvention était avec l’OPTION ADMIN (OUI) ou non (NON)
———
DEFAULT_RÔLE: Indique si le rôle est désigné comme RÔLE PAR DÉFAUT pour l’utilisateur (OUI) ou non (NON)
En utilisant la requête ci-dessous, vous pouvez trouver des utilisateurs ayant des privilèges DBA
SQL> select * from dba_role_privs where granted_role='DBA';
GRANTEE GRANTED_ROLE ADM DEF
--------- ------------ --- ---
SYS DBA YES YES
SYSTEM DBA YES YES
Il existe de nombreuses situations où vous souhaitez révoquer les rôles DBA accordés à l’utilisateur pour des raisons de sécurité. La requête ci-dessus vous aidera à trouver les utilisateurs ayant des privilèges DBA.