Om een beller een PROC
te laten gebruiken met een tabelwaardeparameter, moet u (niet intuïtief) uitvoerrechten verlenen
op de TVP
typ voor degenen die de PROC
. aanroepen d.w.z.
GRANT EXECUTE ON TYPE::[schema].[MyTVP] to [SomeRole]
Bewerken
Ik geloof dat ik het probleem heb kunnen repliceren, namelijk werken met een minimale set machtigingen die aan een gebruiker is verleend. De essentiële stap is dat de DBO of Schema-eigenaar van uw TVP u de volgende toegang ertoe verleent, zodat u deze kunt gebruiken in een PROC
(zonder deze toegang kon ik een losse variabele van het type TVP declareren, maar niet gebruiken in een PROC).
GRANT REFERENCES ON TYPE::[schema].[MyTVP] to YOURROLE -- Or User.
Verleningsreferentie hier
(Uiteraard heb je ook CREATE PROCEDURE
nodig toestemming, plus relevante toegang tot alle objecten die in de PROC worden gebruikt)
Consumenten van de PROC moeten ook de GRANT EXECUTE
. hebben toestemming op de Proc en op het Type volgens het eerste antwoord.