Affinché un chiamante possa utilizzare un PROC
con un parametro con valori di tabella, dovrai (non intuitivamente) concedi i permessi di esecuzione
sul TVP
digita a quelli che chiamano il PROC
cioè
GRANT EXECUTE ON TYPE::[schema].[MyTVP] to [SomeRole]
Modifica
Credo di essere stato in grado di replicare il problema, vale a dire lavorando da un insieme minimo di autorizzazioni concesse a un utente. Il passaggio fondamentale è che il DBO o il proprietario dello schema del tuo TVP ti conceda il seguente accesso ad esso, per poterlo utilizzare in un PROC
(senza questo accesso, sono stato in grado di dichiarare una variabile loose del tipo TVP, ma non usarla in un PROC).
GRANT REFERENCES ON TYPE::[schema].[MyTVP] to YOURROLE -- Or User.
Concedi riferimento qui
(Ovviamente avrai bisogno anche di CREATE PROCEDURE
autorizzazione, oltre all'accesso pertinente a qualsiasi oggetto utilizzato nel PROC)
I consumatori del PROC dovranno avere anche il GRANT EXECUTE
permesso sul Proc e sul Type come da risposta iniziale.