Asunto: Copiar permisos de un servidor de Oracle a otro
Tengo un servidor con Oracle Database 11g instalado y en producción. Por otro lado, tengo otro equipo donde he instalado Oracle Database 11g y quiero que tenga los mismos permisos que el anterior.
Es decir, en el anterior tengo tres usuarios, con sus respectivos permisos, lo que quiero es que en el nuevo servidor todos los usuarios tengan los mismos permisos.
Publicado:
Mie Ene 07, 2009 6:41 pm
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: Copiar permisos de un servidor de Oracle a otro
Anuncios
1. En el servidor de Oracle donde tienes los usuarios y roles con los permisos, utiliza la siguiente consulta SQL que te generar:
Código:
select 'grant ' || granted_role || ' to ' || grantee || ';'
from dba_role_privs
where grantee not in ('SYS','SYSTEM','XDB') and admin_option ='NO'
union
select 'grant ' || granted_role || ' to ' || grantee || ' with admin option;'
from dba_role_privs
where grantee not in ('SYS','SYSTEM','XDB') and admin_option ='YES'
union
select 'grant ' || privilege || ' to ' || grantee || ';'
from dba_sys_privs
where grantee not in ('SYS','SYSTEM','XDB') and admin_option ='NO'
union
select 'grant ' || privilege || ' to ' || grantee || ' with admin option;'
from dba_sys_privs
where grantee not in ('SYS','SYSTEM','XDB') and admin_option ='YES'
union
select 'grant ' || privilege || ' on ' || OWNER || '.' || TABLE_NAME || ' to ' || grantee || ';'
from dba_tab_privs
where grantee not in ('SYS','SYSTEM','XDB')
Te generará algo así:
grant ADMINISTER ANY SQL TUNING SET to DBA with admin option;
grant ADMINISTER DATABASE TRIGGER to DBA with admin option;
grant ADMINISTER DATABASE TRIGGER to EXFSYS;
grant ADMINISTER DATABASE TRIGGER to IMP_FULL_DATABASE;
grant ADMINISTER DATABASE TRIGGER to WMSYS;
grant ADMINISTER RESOURCE MANAGER to DBA with admin option;
grant ADMINISTER RESOURCE MANAGER to EXP_FULL_DATABASE;
grant ADMINISTER RESOURCE MANAGER to IMP_FULL_DATABASE;
grant ADMINISTER SQL MANAGEMENT OBJECT to DBA with admin option;
grant ADMINISTER SQL MANAGEMENT OBJECT to DBA with admin option;
....
2. Copia el resultado de la consulta SQL anterior a un fichero y guárdalo.
3. Si tienes un software de terceros (como TOAD) para ejecutar varias consultas SQL a la vez puedes pegarlas y ejecutarlas, sino puedes utilizar SQL*Plus de Oracle para ejecutar el Script (el fichero que has guardado anteriormente).
Nota: el resultado de esta consulta SQL sólo sirve para generar los GRANT necesarios para asignar los permisos a los usuarios, pero antes de ejecutarla has de tener creados todos los usuarios y roles que tenías en el otro servidor.
Puede publicar nuevos temas en este foro No puede responder a temas en este foro No puede editar sus mensajes en este foro No puede borrar sus mensajes en este foro No puede votar en encuestas en este foro
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A