Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Какво разрешение ми трябва, за да използвам SQL Server Table Valued Parameter (TVP) като съхранен proc параметър?

За да може повикващият да използва PROC с параметър с таблична стойност, ще трябва (неинтуитивно) да предоставяне на разрешения за изпълнение на TVP въведете на тези, които извикват PROC т.е.

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

Редактиране

Вярвам, че успях да репликирам проблема, а именно работейки от минимален набор от разрешения, предоставени на потребител. Жизненоважната стъпка е DBO или собственикът на схемата на вашия TVP да ви предостави следния достъп до него, за да можете да го използвате в PROC (без този достъп успях да декларирам свободна променлива от типа TVP, но не и да я използвам в PROC).

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

Препоръчайте препратка тук (Очевидно ще ви трябва и CREATE PROCEDURE разрешение, плюс съответен достъп до всички обекти, използвани в PROC)

Потребителите на PROC ще трябва да имат и GRANT EXECUTE разрешение за Proc и за Type според първоначалния отговор.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Създайте файл с база данни на SQL Server CE програмно

  2. Как да премахна грешка 3002?

  3. Заобиколно решение за DATEDIFF() игнориране на SET DATEFIRST в SQL Server (пример за T-SQL)

  4. Колоните за дата в SQL-Server (MSSQL-JDBC 3.0), работещи под Java 1.7.0, извлечени като 2 дни в миналото

  5. списък на таблици без индекси в sql 2008