За да може повикващият да използва PROC
с параметър с таблична стойност, ще трябва (неинтуитивно) да предоставяне на разрешения за изпълнение
на TVP
въведете на тези, които извикват PROC
т.е.
GRANT EXECUTE ON TYPE::[schema].[MyTVP] to [SomeRole]
Редактиране
Вярвам, че успях да репликирам проблема, а именно работейки от минимален набор от разрешения, предоставени на потребител. Жизненоважната стъпка е DBO или собственикът на схемата на вашия TVP да ви предостави следния достъп до него, за да можете да го използвате в PROC
(без този достъп успях да декларирам свободна променлива от типа TVP, но не и да я използвам в PROC).
GRANT REFERENCES ON TYPE::[schema].[MyTVP] to YOURROLE -- Or User.
Препоръчайте препратка тук
(Очевидно ще ви трябва и CREATE PROCEDURE
разрешение, плюс съответен достъп до всички обекти, използвани в PROC)
Потребителите на PROC ще трябва да имат и GRANT EXECUTE
разрешение за Proc и за Type според първоначалния отговор.