Tenho uma pergunta sobre os tipos de tabelas definidas pelo usuário no SQL Server 2008.
Para a necessidade de um dos aplicativos ASP.NET, definimos nossos próprios tipos de tabela no SQL Server 2008 para usá-los como parâmetros nos procedimentos armazenados (ao executar o comando sql no aplicativo ASP.NET, passamos o objeto DataTable como parâmetro para o procedimento armazenado veja aqui um exemplo )
O problema é que quando executamos o comando Sql (execute stored procedure) no ASP.NET, obtemos um erro:
A permissão EXECUTE foi negada no objeto 'ourTableType', banco de dados 'ourDatabase', esquema 'ourSchema'.
Por que? Por que precisamos definir permissões em tipos de tabela definidos pelo usuário? Por que não é suficiente ter permissão definida apenas no procedimento armazenado que a usa? E se temos que defini-lo não importa o quê, por que não há EXECUTE
tipo de permissão para definir na janela de propriedades de qualquer natureza (eu posso ver apenas Control
, References
, Take Ownership
, View Definition
)?
O que também não entendo é que definir permissão para Control
na janela de propriedades resolve o problema e o procedimento armazenado é executado sem problemas.