For at en opkalder kan bruge en PROC med en tabelværdiparameter skal du (uintuitivt) giv udførelsestilladelser
på TVP skriv til dem, der kalder PROC dvs.
GRANT EXECUTE ON TYPE::[schema].[MyTVP] to [SomeRole]
Rediger
Jeg tror, jeg var i stand til at replikere problemet, nemlig at arbejde ud fra et minimalt sæt tilladelser givet til en bruger. Det afgørende trin er, at DBO eller Schema Owner af din TVP giver dig følgende adgang til den for at kunne bruge den i en PROC (uden denne adgang var jeg i stand til at erklære en løs variabel af typen TVP, men ikke bruge den i en PROC).
GRANT REFERENCES ON TYPE::[schema].[MyTVP] to YOURROLE -- Or User.
Giv reference her
(Du skal selvfølgelig også bruge CREATE PROCEDURE tilladelse, plus relevant adgang til alle objekter, der bruges i PROC)
Forbrugere af PROC'en skal også have GRANT EXECUTE tilladelse til Proc og Type i henhold til det indledende svar.