sql >> Databasteknik >  >> RDS >> Sqlserver

Vilken behörighet behöver jag för att använda en SQL Server Table Valued Parameter (TVP) som en lagrad proc-parameter?

För att en uppringare ska använda en PROC med en tabellvärderad parameter måste du (ointuitivt) ge körrättigheterTVP skriv till de som anropar PROC dvs.

GRANT EXECUTE ON TYPE::[schema].[MyTVP] to [SomeRole]

Redigera

Jag tror att jag kunde replikera problemet, nämligen att arbeta från en minimal uppsättning behörigheter som beviljats ​​en användare. Det viktiga steget är att DBO eller Schema Owner för din TVP ger dig följande åtkomst till den, för att kunna använda den i en PROC (utan denna åtkomst kunde jag deklarera en lös variabel av typen TVP, men inte använda den i en PROC).

GRANT REFERENCES ON TYPE::[schema].[MyTVP] to YOURROLE -- Or User.

Bevilja referens här (Självklart behöver du också CREATE PROCEDURE behörighet, plus relevant åtkomst till alla objekt som används i PROC)

Konsumenter av PROC måste också ha GRANT EXECUTE behörighet på Proc och på Typ enligt det ursprungliga svaret.



  1. Visa förloppsindikator medan php-skriptet körs genom ajax

  2. SQLAlchemy:gruppera efter dag över flera tabeller

  3. Varför gör tillagd RAND() att MySQL överbelastas?

  4. Hur förhindrar man att utvalda found_rows går sönder under tävlingsförhållanden?