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