Tengo una pregunta sobre los tipos de tablas definidos por el usuario en SQL Server 2008.
Para la necesidad de una de las aplicaciones ASP.NET, definimos nuestros propios tipos de tabla en SQL Server 2008 para usarlos como parámetros en los procedimientos almacenados (al ejecutar el comando sql en la aplicación ASP.NET pasamos el objeto DataTable como parámetro para el procedimiento almacenado ver aquí un ejemplo )
El problema es que cuando ejecutamos el comando Sql (ejecutamos el procedimiento almacenado) desde ASP.NET obtenemos un error:
Se denegó el permiso EJECUTAR en el objeto 'ourTableType', base de datos 'ourDatabase', esquema 'ourSchema'.
¿Por qué es así? ¿Por qué necesitamos establecer permisos en tipos de tablas definidos por el usuario? ¿Por qué no es suficiente tener permisos establecidos solo en el procedimiento almacenado que lo usa? Y si tenemos que establecer que no importa qué, por qué no hay un EXECUTE
tipo de permiso para establecer en la ventana de propiedades en absoluto (sólo puedo ver Control
, References
, Take Ownership
, View Definition
)?
Lo que tampoco entiendo es que establecer el permiso Control
en la ventana de propiedades resuelve el problema y el procedimiento almacenado se ejecuta sin problemas.