Este grupo de expertos pasados varios días de trabajo y de juntar de datos, obtuvieron la solución, queremos que resulte de utilidad para tu plan.
Solución:
Además de la respuesta de VAV, la primera fue más útil en mi entorno.
select * from USER_ROLE_PRIVS where USERNAME='SAMPLE';
select * from USER_TAB_PRIVS where Grantee = 'SAMPLE';
select * from USER_SYS_PRIVS where USERNAME = 'SAMPLE';
Consulte http://docs.oracle.com/cd/B10501_01/server.920/a96521/privs.htm#15665
Verifique las tablas USER_SYS_PRIVS, USER_TAB_PRIVS, USER_ROLE_PRIVS con estas declaraciones seleccionadas
SELECT * FROM USER_SYS_PRIVS;
SELECT * FROM USER_TAB_PRIVS;
SELECT * FROM USER_ROLE_PRIVS;
Ninguna de las otras respuestas funcionó para mí, así que escribí mi propia solución:
A partir de Oracle 11g.
Reemplace USUARIO con el nombre de usuario deseado
Funciones otorgadas:
SELECT *
FROM DBA_ROLE_PRIVS
WHERE GRANTEE = 'USER';
Privilegios otorgados directamente al usuario:
SELECT *
FROM DBA_TAB_PRIVS
WHERE GRANTEE = 'USER';
Privilegios otorgados al rol otorgado al usuario:
SELECT *
FROM DBA_TAB_PRIVS
WHERE GRANTEE IN (SELECT granted_role
FROM DBA_ROLE_PRIVS
WHERE GRANTEE = 'USER');
Privilegios del sistema otorgados:
SELECT *
FROM DBA_SYS_PRIVS
WHERE GRANTEE = 'USER';
Si desea buscar el usuario con el que está conectado actualmente, puede reemplazar DBA en el nombre de la tabla con USUARIO y eliminar la cláusula WHERE.
valoraciones y reseñas
Recuerda que puedes compartir esta crónica si si solucionó tu problema.