Aby volající mohl použít PROC
s parametrem s hodnotou tabulky, budete muset (neintuitivně) udělte oprávnění ke spuštění
na TVP
zadejte těm, kteří volají PROC
tj.
GRANT EXECUTE ON TYPE::[schema].[MyTVP] to [SomeRole]
Upravit
Domnívám se, že se mi podařilo problém replikovat, viz práci s minimální sadou oprávnění udělených uživateli. Důležitým krokem je, aby vám DBO nebo vlastník schématu vašeho TVP udělil následující přístup k němu, abyste jej mohli používat v PROC
(bez tohoto přístupu jsem byl schopen deklarovat volnou proměnnou typu TVP, ale nepoužít ji v PROC).
GRANT REFERENCES ON TYPE::[schema].[MyTVP] to YOURROLE -- Or User.
Zde udělte referenci
(Samozřejmě budete také potřebovat CREATE PROCEDURE
oprávnění plus relevantní přístup ke všem objektům používaným v PROC)
Spotřebitelé PROC budou muset mít také GRANT EXECUTE
oprávnění k procesu a typu podle původní odpovědi.