Me encuentro con un problema donde no está funcionando la concesión de permisos de EJECUCIÓN en un procedimiento almacenado específico en SQL Server 2005. Algunos de los probadores se metieron con los permisos y descubrieron que si también otorgaban permisos de CONTROL en el Procedimiento almacenado, funcionaba bien. Ahora están convencidos de que otorgar permisos de CONTROL es el camino a seguir.¿Se debe otorgar el permiso CONTROL en un Procedimiento almacenado en SQL Server 2005?
Sé que esto no puede ser cierto, y de hecho, creo que el problema real es que el usuario no tenía permisos de Seleccionar/Insertar/Actualizar/Eliminar en las tablas con las que se ejecutó el Procedimiento almacenado. El problema es que parece que no puedo encontrar nada en línea que lo pruebe.
¿Es correcto? ¿Alguien sabe de alguna documentación que habla de esto?
Gracias de antemano.
Más información en respuesta a comentarios: El procedimiento almacenado está realizando varias eliminaciones. Primero elimina todos los registros que quedarán huérfanos por el registro "principal" que se está eliminando, y finalmente elimina el registro principal.
Además, el error que vemos indica que el usuario no tiene suficientes permisos o que el Procedimiento almacenado no existe. Ya hemos confirmado que estamos utilizando el usuario correcto y que se otorgaron permisos de EJECUTAR a ese usuario.
Si otorga permiso de ejecución a un proceso almacenado, puede hacer todas las inserciones, actualizaciones y eliminaciones deseadas. Tendrás que decirnos qué más está haciendo la sp. –
Oh sí ... lo siento por eso. El procedimiento almacenado está haciendo múltiples eliminaciones. Primero elimina todos los registros que quedarán huérfanos por el registro "principal" que se está eliminando, y finalmente elimina el registro principal. – leftend
Además, el error que vemos indica que el usuario no tiene suficientes permisos, o que el Procedimiento almacenado no existe. Ya hemos confirmado que estamos utilizando el usuario correcto y que se otorgaron permisos de EJECUTAR a ese usuario. – leftend