У меня есть вопрос о Пользовательских типах таблиц в SQL Server 2008.
Для использования одного из приложений ASP.NET мы определили наши собственные типы таблиц на SQL Server 2008, чтобы использовать их в качестве параметров в хранимых процедурах (при выполнении команды sql в приложении ASP.NET мы передаем объект DataTable в качестве параметра для хранимой процедуры см. здесь пример)
Проблема заключается в том, что когда мы запускаем команду Sql (выполняем хранимую процедуру) из ASP.NET, получаем ошибку:
Разрешение EXECUTE было отклонено по объекту 'ourTableType', база данных 'ourDatabase', схема 'ourSchema'.
Почему это так? Почему нам нужно установить разрешение на пользовательские типы таблиц? Почему недостаточно иметь разрешение, установленное только на хранимой процедуре, которая его использует? И если мы должны установить его независимо от того, почему нет типа разрешения EXECUTE
для установки в окне свойств вообще (я могу видеть только Control
, References
, Take Ownership
, View Definition
)?
То, что я также не понимаю, заключается в том, что разрешение на разрешение на Control
в окне свойств решает проблему, и хранимая процедура выполняется без проблем.