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

Трябва ли да се даде разрешение CONTROL за съхранена процедура в SQL Server 2005?

Ако съхранената процедура е създадена с помощта на EXECUTE AS CALLER (което според мен е по подразбиране), тогава извикващият трябва да има всички необходими разрешения, за да направи каквото и да прави съхранената процедура в допълнение към EXECUTE на процедурата.

От документацията на SQL Server за EXECUTE AS:

Обърнете внимание, че поради начина, по който SQL Server обработва проверките на разрешения с помощта на вериги за собственост, това не винаги е стриктно вярно и предполагам, че предоставянето на КОНТРОЛ върху процедурата (която предоставя статус на собственост на получателя) причинява тези проверки на разрешения да бъдат прескочен.

Ако създадете процедурата с ИЗПЪЛНЕНИЕ КАТО СОБСТВЕНИК, тогава не трябва да давате никакви разрешения освен ИЗПЪЛНЕНИЕ за процедурата.



  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 2008:Изключете спиращите думи за заявка за търсене в пълен текст

  2. Получаването на списък с база данни зависи от избрания сървър

  3. Намерете датата/часа, когато е създадена колона на таблица

  4. Автоматично генериране на йерархична стойност

  5. Нуждаете се от T-SQL Query, намерете всички възможни начини