Haben Rollen einen Besitzer in Orakel?

8

Angenommen, ich habe mich mit Benutzer X bei der Oracle-Datenbank angemeldet, dann erstellt Benutzer X mithilfe des create roleBefehls einige Rollen . Ich möchte wissen, dass Benutzer X der Eigentümer der Rollen ist. Kann ich alle von Benutzer X erstellten Rollen auswählen?

rahim asgari
quelle

Antworten:

4

Die Rollen in Oracle Database haben keinen Eigentümer, und Verzeichnisse haben keinen Eigentümer.

Wenn der Benutzer mit CREATE ROLEoder SYSDBABerechtigung die Rolle erstellt, wird ihm diese Rolle automatisch zugewiesen. Dies WITH ADMIN OPTIONbedeutet, dass der Benutzer diese Rolle anschließend anderen Benutzern gewähren kann, selbst wenn die Berechtigung CREATE ROLEvom Benutzer widerrufen wird.

Sie können sehen, welche Rollen welchen Benutzern zugewiesen sind, die die DBA_ROLE_PRIVSAnsicht abfragen , oder USER_ROLE_PRIVSob Sie wissen möchten, welche Rollen dem aktuellen Benutzer zugewiesen sind.

Außerdem kann ein Benutzer keine Rolle erstellen, wenn die gleichnamige Rolle bereits vorhanden ist. Sie können jedoch die Erstellung und Gewährung von Rollen überwachen. Sie können dies mit der Anweisung AUDIT ROLE tun (wenn sie aus irgendeinem Grund deaktiviert war NOAUDIT ROLE) und dann die DBA_AUDIT_TRAILAnsicht abfragen .

Yasir Arsanukaev
quelle
1

Obwohl eine Rolle keinen Eigentümer hat, zeigt dba_role_privs sowohl Benutzer als auch Rollen an, denen ein Privileg gewährt wurde.

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

Inner Join to dba_users, um nur Benutzer mit der Administratoroption für Rollen anzuzeigen.

--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
quelle
0

Wenn Sie die Administratoroption für eine Rolle haben, können Sie diese Rolle löschen, auch wenn Sie nicht über die Berechtigung zum Löschen von Rollen verfügen oder die Rolle "besitzen", wie in, Sie haben die Rolle nicht erstellt.

Funkeln
quelle