sql >> Database >  >> RDS >> Sqlserver

Welke toestemming heb ik nodig om een ​​SQL Server Table Valued Parameter (TVP) als opgeslagen proc-parameter te gebruiken?

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.



  1. MySQL ODBC-connector 32bit of 64bit?

  2. Hulp nodig bij het optimaliseren van een lat/Lon geo-zoekopdracht voor mysql

  3. Kan json niet uit mysql varchar halen, maar int

  4. Kan de postgreSQL niet verbinden met psycopg2