Les rôles ont-ils un propriétaire dans Oracle?

8

Supposons que je me suis connecté à la base de données Oracle à l'aide de l'utilisateur X, puis l'utilisateur X crée des rôles à l'aide de la create rolecommande. Je veux savoir que l'utilisateur X est le propriétaire des rôles? Puis-je sélectionner tous les rôles créés par l'utilisateur X?

rahim asgari
la source

Réponses:

4

Les rôles dans Oracle Database n'ont pas de propriétaire ainsi que les répertoires n'ont pas de propriétaire.

Lorsque l'utilisateur avec CREATE ROLEou le SYSDBAprivilège crée le rôle, ce rôle lui est automatiquement attribué, ce WITH ADMIN OPTIONqui signifie que l'utilisateur peut par la suite accorder ce rôle à d'autres utilisateurs même si le privilège CREATE ROLEest révoqué de l'utilisateur.

Vous pouvez voir quels rôles sont affectés à quels utilisateurs interroger la DBA_ROLE_PRIVSvue, ou USER_ROLE_PRIVSsi vous souhaitez savoir quels rôles sont attribués à l'utilisateur actuel.

En outre, un utilisateur ne peut pas créer un rôle si le rôle portant le même nom existe déjà. Cependant, vous pouvez auditer la création et l'octroi de rôles. Vous pouvez le faire avec l'instruction AUDIT ROLE (si elle a été désactivée pour une raison quelconque NOAUDIT ROLE), puis en interrogeant la DBA_AUDIT_TRAILvue.

Yasir Arsanukaev
la source
1

Bien qu'un rôle n'ait pas de propriétaire, dba_role_privs affiche à la fois les utilisateurs et les rôles accordés à un privilège.

--This lists both users and roles
SELECT * FROM dba_role_privs
WHERE admin_option = 'YES'
order by grantee, granted_role;

Inner Join à dba_users pour voir uniquement les utilisateurs avec l'option admin sur les rôles.

--This lists only users with admin option on roles
SELECT rp.grantee, rp.granted_role, rp.admin_option
FROM dba_role_privs rp
JOIN dba_users u
  ON rp.grantee = u.username
WHERE admin_option = 'YES'
ORDER BY grantee, granted_role;
ExcessOperatorHeadspace
la source
0

Si vous avez l'option admin sur un rôle, vous pouvez supprimer ce rôle, même si vous ne possédez pas le privilège de suppression de rôle ou si vous "possédez" le rôle, comme dans, vous n'avez pas créé le rôle.

Scintillait
la source