Ho una domanda sui tipi di tabella definiti dall'utente in SQL Server 2008.
Per la necessità di una delle applicazioni ASP.NET abbiamo definito i nostri tipi di tabella su SQL Server 2008 per usarli come parametri nelle procedure memorizzate (durante l'esecuzione del comando sql nell'applicazione ASP.NET passiamo l'oggetto DataTable come parametro per la procedura memorizzata vedi qui per un esempio )
Il problema è che quando eseguiamo il comando Sql (eseguiamo stored procedure) da ASP.NET otteniamo un errore:
L'autorizzazione EXECUTE è stata negata sull'oggetto "ourTableType", database "ourDatabase", schema "ourSchema".
Perchè è così? Perché è necessario impostare l'autorizzazione sui tipi di tabella definiti dall'utente? Perché non è sufficiente avere l'autorizzazione impostata solo sulla stored procedure che la utilizza? E se dobbiamo impostare non importa cosa, perché non v'è alcun EXECUTE
tipo di autorizzazione a mettere in finestra delle proprietà di sorta (posso solo vedere Control
, References
, Take Ownership
, View Definition
)?
Quello che inoltre non capisco è che l'impostazione dell'autorizzazione su Control
nella finestra delle proprietà risolve il problema e la procedura memorizzata viene eseguita senza problemi.