Este es el comienzo para mi blog

Mi día a día en el desarrolo de Software (JEE, Glassfish, JBoss EAP, Primefaces, Ajax, Android)

jueves, 22 de octubre de 2015

¿Cómo otorgar privilegios de ejecución sobre un procedimiento almacenado en Oracle?

Problema

En el día a día de nuestro trabajo seguramente nos hemos encontrado con el problema de que un usuario de la Base de Datos (Oracle) no puede ejecutar un procedimiento almacenado creado por otro usuario (Oracle).

Solución

Para otorgar privilegios de ejecución sobre un procedimiento almacenado a un usuario no propietario del objeto en la Base de Datos (Oracle), debemos tomar en consideración estos puntos importantes.

1.- En este proceso intervienen dos tipos de usuario de la Base de Datos (Oracle), el usuario propietario del objeto (procedimiento almacenado), y el usuario ejecutor del objeto (procedimiento almacenado.)

2.- El usuario propietario del procedimiento almacenado debe otorgar, al usuario ejecutor, el privilegio de ejecución sobre este objeto.

3.- El usuario ejecutor, una vez otorgado el privilegio de ejecución sobre el objeto (procedimiento almacenado Oracle), debe crear un sinónimo (normalmente es el mismo nombre del procedimiento almacenado del usuario propietario) para poderlo ejecutar.
  • Si al sinónimo lo llaman de manera distinta al que le dio el usuario propietario al procedimiento almacenado, al momento de ejecutar el mismo, deben hacerlo con el nombre correspondiente al sinónimo creado (esto solo para el usuario ejecutor).

Implementación

Luego de haber analizado los puntos críticos que se deben tomar en cuenta para la otorgación de privilegios de ejecución sobre un procedimiento almacenado en la Base de Datos (Oracle), este es el script para su implementación:

Desde el usuario propietario:
GRANT execute ON NOMBRE_DEL_PROCEDIMIENTO_ALMACENADO TO USER_EJECUTOR


Desde el usuario ejecutor (o usuario DBA):
CREATE SYNONYM USER_EJECUTOR.NOMBRE_DEL_SINONIMO FOR USER_PROPIETARIO.NOMBRE_DEL_PROCEDIMIENTO_ALMACENADO

Espero sea de ayuda!
No olviden dejar sus comentarios.

1 comentario:

Gracias por dejar su comentario. Lo esperamos en el siguiente post.