Índice

Contexto de ejecución

El contexto de ejecución corresponde al conjunto de autorizaciones activas en el momento de la ejecución de una consulta, un script Transact SQL, un procedimiento, una función o un trigger. Por defecto, son los privilegios asignados al contexto de seguridad que ejecutan la consulta, el script, el procedimiento, la función o el trigger los que se utilizan para ejecutar las instrucciones subyacentes. Este modo de funcionamiento por defecto es, la mayoría de las veces, el que mejor se adapta y por tanto no conviene cambiarlo. Sin embargo, en algunos casos precisos, es necesario asegurar la correcta ejecución independientemente de los privilegios asignados al usuario que originó la ejecución. Este caso se produce por ejemplo cuando una persona no recibe el privilegio de añadir (insert) datos en una tabla y hay un procedimiento que permite realizar este trabajo. En este caso, la cláusula EXECUTE AS permite precisar el contexto de ejecución a utilizar.

El contexto de ejecución definido de esta manera corresponde al de un usuario mencionado expresamente, al del que llama (opción por defecto) o bien al del propietario.

Sintaxis

CREATE PROCEDURE nombreProcedimiento 
WITH EXECUTE AS {CALLER|SELF|OWNER|’nombreUsuario’}
AS cuerpoDelProcedimiento

CALLER

El contexto de ejecución es el del usuario que llama al procedimiento o a la función.

SELF

El contexto de ejecución es el del creador del procedimiento o la función.

OWNER

El contexto ...