lunes, 7 de abril de 2014

El usuario no Ejecuta el proceso dinamico???

este dia me tope con un problema a un usuario se le creo un proceso para que de forma dinamica asigne permisos a roles o roles a usuarios pero NO FUNCIONO cuando lo ejecuta el usuario final????
por que sera????
el mensaje de error era :

ORA-01031: insufficient privileges while issuing an EXECUTE IMMEDIATE

pos en una literatura encontré lo siguiente:
Un Procedure o Package se ejecuta con los permisos del que lo ejecuta o con los permisos del esquema ONDE (donde) esta almacenado. 

http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/create_package.htm#i2065285


AUTHID CURRENT_USER
Specify CURRENT_USER to indicate that the package executes with the privileges of CURRENT_USER. This clause creates an invoker's rights package.
This clause also specifies that external names in queries, DML operations, and dynamic SQL statements resolve in the schema of CURRENT_USER. External names in all other statements resolve in the schema in which the package resides.
AUTHID DEFINER
Specify DEFINER to indicate that the package executes with the privileges of the owner of the schema in which the package resides and that external names resolve in the schema where the package resides. This is the default and creates a definer's rights package.

Esta clausula puede ser omitida y por defecto tomara el valor de AUTHID DEFINER pero para mi criterio es mejor colocarlo, un par de letras mas no dañan a nadie

AUTHID DEFINER (default)
Esta opcion es por defecto si no se especifica nada. En este caso el procedimiento o paquete se va a ejecutar con el dueño del esquema en que fue creado el procedimiento o paquete.
AUTHID CURRENT_USER
En este caso el procedure se ejecuta con el usuario que realiza la ejecucion y dentro de su esquema independientemente de quien sea el dueño del procedimiento o paquete.


Nota: 
en ambos casos se le debe dar grant de execute al usuario/esquema o rol que quiera utilizar el procedimiento o paquete


les debo el ejemplo :D :D :D

No hay comentarios.:

Publicar un comentario