¿Cómo exportar un esquema con todos sus grants y roles?

¿Quería saber como hago para exportar todos los objetos de un esquema, junto con todos sus privilegios y roles de tal forma que al hacer un import en otra base de datos oracle el esquema quede totalmente igual como en la otra?
Yo he usado los siguiente comando:
exp system file=/path/name.dmp owner=esquema
imp system file=/path/name.dmp fromuser=esquema touser=esquema commit;
Por supuesto he creado el esquema antes de hacer el import, pero los grants y roles que tenia el esquema no se ven en la nueva base.

1 respuesta

Respuesta
1
Creo que vas a tener que generarte los scripts usando las vistas; lo que se se lleva son los grants sobre los objetos que estás importando.
No me queda muy claro!, solo para las vistas debo generar los scripts.
¿Para los demás objetos los grants si se copian?
¿Con respecto a los roles de ese usuario que sucede? Por lo que veo no se exportan, ¿entonces los debo asignar los roles manualmente luego de hacer el import?
Ha y otra cosa más, ¿es posible exportar e importar un tablespace? ¿Cuál es la forma de hacerlo?
Desde ya gracias, Saludos
No, no.
Si importas un esquema, se importan todos los objetos, incluso los grants dados a otros usuarios y/o roles, sobre esos objetos.
Lo que NO se importa son los privilegios concedidos al dueño del esquema, así que para mantenerlo tienes que generarte un script aparte, pero la mayoría de las herramientas tiene, por ej. el "crear como" de las herramientas de administración.
Las vistas a las que me refiero, son las dba_tab_privs, dba_role_privs, dba_role_roles, etc pero sólo si vas a generar los scripts a mano, porque en esas vistas está toda la información.
Si vas a importar todo el esquema, creo que es más fácil hacer lo siguiente:
Usar alguna herramienta para generar un script crea_user.sql, incluso con la password si es 9i(se puede usar el "identified by values", que es la pass encriptada). Con la consola de administración se puede generar con el "Crear como" y mostrando el sql.
Tu script debería ser algo así:
Drop user Pepe cascade; -- esto hay que hacerlo si
Create user pepe identified by values 'AF33AFD343....' Default tablespace...
GRANT ROL1 to pepe
GANTE SELECT ON JUAN.TABLA
Despues simplemente hay que importar el esquema (fromuser=pepe touser=pepe)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas