sql >> Database teknologi >  >> RDS >> Sqlserver

Hvilken tilladelse skal jeg bruge for at bruge en SQL Server Table Valued Parameter (TVP) som en lagret proc-parameter?

For at en opkalder kan bruge en PROC med en tabelværdiparameter skal du (uintuitivt) giv udførelsestilladelserTVP skriv til dem, der kalder PROC dvs.

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

Rediger

Jeg tror, ​​jeg var i stand til at replikere problemet, nemlig at arbejde ud fra et minimalt sæt tilladelser givet til en bruger. Det afgørende trin er, at DBO eller Schema Owner af din TVP giver dig følgende adgang til den for at kunne bruge den i en PROC (uden denne adgang var jeg i stand til at erklære en løs variabel af typen TVP, men ikke bruge den i en PROC).

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

Giv reference her (Du skal selvfølgelig også bruge CREATE PROCEDURE tilladelse, plus relevant adgang til alle objekter, der bruges i PROC)

Forbrugere af PROC'en skal også have GRANT EXECUTE tilladelse til Proc og Type i henhold til det indledende svar.



  1. Få resultater fra tabel-værdi Postgresql-funktion med JOOQ

  2. MySQL ERROR 2026 - SSL-forbindelsesfejl - Ubuntu 20.04

  3. SQL giver en syntaksfejl, men jeg kan ikke se en

  4. Hvordan KOPIERE IMPORTERE en json-fil til postgres?