Para que um chamador use um
PROC
com um parâmetro com valor de tabela, você precisará (não intuitivamente) conceder permissões de execução
no TVP
digite para aqueles que chamam o PROC
ou seja GRANT EXECUTE ON TYPE::[schema].[MyTVP] to [SomeRole]
Editar
Acredito que consegui replicar o problema, ou seja, trabalhando com um conjunto mínimo de permissões concedidas a um usuário. O passo vital é que o DBO ou Proprietário do Esquema do seu TVP conceda a você o seguinte acesso a ele, para poder usá-lo em um
PROC
(sem esse acesso, consegui declarar uma variável solta do tipo TVP, mas não usei em um PROC). GRANT REFERENCES ON TYPE::[schema].[MyTVP] to YOURROLE -- Or User.
Conceder referência aqui (Obviamente você também precisará de
CREATE PROCEDURE
permissão, além de acesso relevante a quaisquer objetos usados no PROC) Os consumidores do PROC também precisarão ter o
GRANT EXECUTE
permissão no Proc e no Type conforme a resposta inicial.