I've tried to write a query to have a users/roles extraction, i don't have much SQL skills as well as on oracle, so I started with this:
SELECT A.GRANTEE, A.GRANTED_ROLE, B.ACCOUNT_STATUS FROM DBA_ROLE_PRIVS A
JOIN DBA_USERS B ON A.GRANTEE = B.USERNAME
WHERE B.ACCOUNT_STATUS = 'OPEN'
AND A.GRANTEE NOT IN ('SYS', 'SYSTEM')
ORDER BY GRANTEE;
The results look like this:
GRANTEE GRANTED_ROLE ACCOUNT_STATUS
PIPPO CONNECT OPEN
PLUTO CONNECT OPEN
PAPERINO DATAPUMP_IMP_FULL_DATABASE OPEN
PAPERINO DATAPUMP_EXP_FULL_DATABASE OPEN
ZIOPAPERONE RESOURCE OPEN
ZIOPAPERONE CONNECT OPEN
PAPEROGA CONNECT OPEN
PAPEROGA RESOURCE OPEN
Anybody knows if it's possible to have something like this down, where the multiple GRANTED_ROLE is grouped into a single column?
GRANTEE GRANTED_ROLE ACCOUNT_STATUS
PIPPO CONNECT OPEN
PLUTO CONNECT OPEN
PAPERINO DATAPUMP_IMP_FULL_DATABASE, DATAPUMP_EXP_FULL_DATABASE OPEN
ZIOPAPERONE RESOURCE, CONNECT OPEN
PAPEROGA CONNECT, RESOURCE OPEN
or if another system table exist with the same behavior? the database is an Oracle DB 12c
Thanks a lot