J'ai une question sur les types de table définis par l' utilisateur dans SQL Server 2008.
Pour le besoin de l'une des applications ASP.NET, nous avons défini nos propres types de table sur SQL Server 2008 pour les utiliser comme paramètres dans les procédures stockées (lors de l'exécution de la commande sql dans l'application ASP.NET, nous transmettons l'objet DataTable en tant que paramètre de la procédure stockée voir ici pour un exemple )
Le problème est que lorsque nous exécutons la commande Sql (exécutons la procédure stockée) à partir d'ASP.NET, nous obtenons une erreur:
L'autorisation EXECUTE a été refusée sur l'objet 'ourTableType', base de données 'ourDatabase', schéma 'ourSchema'.
Pourquoi est-ce si? Pourquoi avons-nous besoin de définir l'autorisation sur les types de table définis par l'utilisateur? Pourquoi ne suffit-il pas d'avoir une autorisation définie uniquement sur la procédure stockée qui l'utilise? Et si nous devons le régler , peu importe quoi, pourquoi il n'y a pas de EXECUTE
type d'autorisation à mettre en fenêtre des propriétés que ce soit (je ne vois que Control
, References
, Take Ownership
, View Definition
)?
Ce que je ne comprends pas non plus, c'est que la définition de l'autorisation Control
dans la fenêtre des propriétés résout le problème et la procédure stockée s'exécute sans problèmes.