I ruoli hanno un proprietario in oracolo?


8

Supponiamo che io abbia effettuato l'accesso al database Oracle utilizzando l'utente X, quindi l'utente X crea alcuni ruoli utilizzando il create rolecomando. Voglio sapere che l'utente X è il proprietario dei ruoli? Posso selezionare tutti i ruoli creati dall'utente X?

Risposte:


4

I ruoli nel database Oracle non hanno alcun proprietario, così come le directory non hanno alcun proprietario.

Quando l'utente con CREATE ROLEo il SYSDBAprivilegio crea il ruolo, gli viene automaticamente assegnato quel ruolo, il WITH ADMIN OPTIONche significa che l'utente può successivamente concedere quel ruolo ad altri utenti anche se il privilegio CREATE ROLEviene revocato dall'utente.

Puoi vedere quali ruoli sono assegnati a quali utenti DBA_ROLE_PRIVSvisualizzano la query o USER_ROLE_PRIVSse vuoi sapere quali ruoli sono assegnati all'utente corrente.

Inoltre, un utente non può creare un ruolo se il ruolo con lo stesso nome esiste già. Tuttavia, è possibile controllare la creazione e la concessione di ruoli. È possibile farlo con l'istruzione AUDIT ROLE (se per qualche motivo è stato disabilitato con NOAUDIT ROLE), quindi interrogare la DBA_AUDIT_TRAILvista.


1

Sebbene un ruolo non abbia un proprietario, dba_role_privs mostra sia gli utenti che i ruoli assegnati a un privilegio.

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

Inner Partecipa a dba_users per vedere solo gli utenti con l'opzione admin sui ruoli.

--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;

0

Se si dispone dell'opzione di amministrazione su un ruolo, è possibile eliminare tale ruolo, anche se non si possiede il privilegio di rilasciare il ruolo o "possedere" il ruolo, come in, non è stato creato il ruolo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.