Saltar al contenido

Ejecutar un procedimiento almacenado que selecciona e inserta en tablas en SQL Server

Solución:

No, no necesita otorgar permiso explícito en Table1 y Table2, ese es uno de los objetivos de incrustar código en el procedimiento almacenado y ahí es donde entra en vigencia la función de encapsulación.

Por favor, consulte el siguiente enlace de Microsoft:

Administrar permisos con procedimientos almacenados en SQL Server

Ejecución de procedimiento almacenado

Los procedimientos almacenados aprovechan el encadenamiento de propiedad para proporcionar acceso a los datos, de modo que los usuarios no necesitan tener un permiso explícito para acceder a los objetos de la base de datos. Existe una cadena de propiedad cuando los objetos que acceden entre sí de forma secuencial pertenecen al mismo usuario. Por ejemplo, un procedimiento almacenado puede llamar a otros procedimientos almacenados o un procedimiento almacenado puede acceder a varias tablas. Si todos los objetos en la cadena de ejecución tienen el mismo propietario, SQL Server solo verifica el permiso EJECUTAR para la persona que llama, no los permisos de la persona que llama sobre otros objetos. Por lo tanto, solo debe otorgar permisos EJECUTAR en procedimientos almacenados; puede revocar o denegar todos los permisos en las tablas subyacentes.

Utilice el siguiente código para otorgar permiso de ejecución:

USE database_name
GO
GRANT EXECUTE ON USP_NAME  
    TO User_name;  
GO

La esperanza de arriba ayuda.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *