Para que una persona que llama use un PROC
con un parámetro con valor de tabla, deberá (intuitivamente) otorgar permisos de ejecución
en el TVP
escriba a los que llaman al PROC
es decir,
GRANT EXECUTE ON TYPE::[schema].[MyTVP] to [SomeRole]
Editar
Creo que pude replicar el problema, a saber, trabajando desde un conjunto mínimo de permisos otorgados a un usuario. El paso vital es que el DBO o propietario del esquema de su TVP le otorgue el siguiente acceso a él, para poder usarlo en un PROC
(sin este acceso, pude declarar una variable suelta del tipo TVP, pero no usarla en un PROC).
GRANT REFERENCES ON TYPE::[schema].[MyTVP] to YOURROLE -- Or User.
Conceder referencia aquí
(Obviamente, también necesitará CREATE PROCEDURE
permiso, además de acceso relevante a cualquier objeto utilizado en el PROC)
Los consumidores del PROC también deberán tener GRANT EXECUTE
permiso en el Proc y en el Tipo según la respuesta inicial.