Despues de un buen rato de hacerlo de esta manera, voilà, llegue a descubrir el paquete de DBMS_METADATA, este paquete lo que nos extraer , como dice su nombre, la definicion de objetos.
Con el siguiente script podras obtener la definicion de un usuario y sus privilegios
column metadata format a200 WORD_WRAPPED
set long 10000000
execute dbms_metadata.set_transform_param (DBMS_METADATA.SESSION_TRANSFORM,'SQLTERMINATOR',TRUE);
select dbms_metadata.get_ddl ('USER', username) metadata
from dba_users
where username in ('&&USERNAME');
select dbms_metadata.get_granted_ddl ('DEFAULT_ROLE', grantee) metadata
from (select distinct grantee
from dba_role_privs
where default_role = 'YES'
intersect
select username
from dba_users
where username in ('&&USERNAME'));
select dbms_metadata.get_granted_ddl ('ROLE_GRANT', grantee) metadata
from (select distinct grantee
from dba_role_privs
intersect
select username
from dba_users
where username in ('&&USERNAME'));
select dbms_metadata.get_granted_ddl ('SYSTEM_GRANT', grantee) metadata
from (select distinct grantee
from dba_sys_privs
intersect
select username
from dba_users
where username in ('&&USERNAME'));
select dbms_metadata.get_granted_ddl ('OBJECT_GRANT', grantee, 'COMPATIBLE','ORACLE','DDL',100000) metadata
from (select distinct grantee
from dba_tab_privs
intersect
select username
from dba_users
where username in ('&&USERNAME'));
Conclusion
No solo este paquete te sirve para un usuario, te sirve tambien para extraer definicion de cualquier objeto de nuestra base de datos, una vez que te sientas agusto con este paquete, vas a ver el gran beneficio que tiene.
Hola
ResponderBorrarTe animo a probar http://www.ddlwizard.com/
Es una fantástica herramienta gratuita que extrae todo el DDL de una base de datos a partir de un export sin filas (rows=n).
Yo la utilizo para todas mis migraciones y nunca me ha fallado.
Juan.
Hola Juan, creo que cualquier herramienta que te ayude a hacer mejor tu trabajo es buena, en este caso tambien creo que es bueno saber que hacer cuando no tienes estas a la mano.
ResponderBorrar