Exportar una base de datos Oracle, importarla a un usuario diferente, los procedimientos almacenados no funcionan
-
19-09-2019 - |
Pregunta
Exporto un "esquema" de Oracle usando
exp userid=/ file=pt.dmp log=pt.log owner=FOO buffer=10000000 statistics=NONE direct=Y
y luego importárelo a un esquema diferente en la misma instancia de Oracle en el mismo SID usando
imp userid=/ file=pt.dmp fromuser=FOO touser=paul
Cuando intento acceder a los procedimientos almacenados con el nuevo usuario, obtengo
ORA-29541: class PAUL.ESMQOracleStoredProc could not be resolved
¿Alguna idea de por qué un usuario puede resolver esto, pero otro no puede?
Solución
El mensaje de error indica que este es un Java procedimiento almacenado. Entonces requiere permisos de Java. los CREATE PROCEDURE
El privilegio no lo cubrirá. Para empezar, Foo necesitará JAVAUSERPRIV
Además, ¿tal vez esto es lo que le falta a Paul?
Además, si ese JSP hace algo esotérico, requerirá privilegios adicionales otorgados a través de dbms_java.grant_permission()
. Puedes descubrir eso usando la vista dba_java_policy para comparar permisos otorgados para Paul y Foo.