sql >> Base de Datos >  >> RDS >> Sqlserver

¿Qué permiso necesito para usar un parámetro de valor de tabla (TVP) de SQL Server como parámetro de proceso almacenado?

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.