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.