
28/12/2009, 16:11
|
| | Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 17 años, 8 meses Puntos: 43 | |
Respuesta: Privilegio para procedimientos almacenados No te explicas muy bien.
Si por procedimiento hablas de un " PROCEDURE " y al hablar que tienes empaquetados te refieres a que los tienes en un " PACKAGE " y ese procedure del package lo va a aejecutar otro que no sea su propietario ( me estoy liando ) lo que tienes que hacer es dar un simple GRANT de EXECUTE sobre el PACKAGE ( NO SOBRE EL PROCEDURE DEL PACKAGE ) al usuario que lo va a ejcutar :
GRANT EXECUTE ON << NOMBRE_DEL_PACKAGE >> TO << USUARIO QUE LO VA A EJECUTAR >>
Y para no poner el usuario ( NO TABLESPACE ) por delante cada vez que lo llames, create un sinonimo privado.
Digamos que el propietario del package se llama USER_PROPIETARIO y el que lo va a ejecutar es USER_EJECUTOR.
Tendrías que hacer esto desde el por ejemplo el SQL PLUS :
Desde USER_PROPIETARIO :
GRANT EXCUTE ON << NOMBRE_DEL_PACKAGE >> TO USER_EJECUTOR
/
Desde USER_EJECUTOR ( O un usuario DBA ) :
CREATE SYNONYM USER_EJECUTOR.NOMBRE_DEL_SINONIMO ( GENERALMENTE SE LE LLAMA IGUAL QUE EL OBJETO ORIGINAL ) FOR USER_PROPIETARIO.NOMBRE_DEL_PACKAGE
/
Pues si no me he liado, creo que esto es todo. |