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

Съхранена процедура и разрешения - достатъчно ли е EXECUTE?

Разрешенията за таблици не се проверяват (включително DENY), ако таблиците и процесът имат един и същ собственик. Те също могат да бъдат в различни схеми, стига схемите да имат един и същ собственик.

Вижте Верига на собствеността в MSDN

Редактиране, от коментар от изтрит отговор.

Контекстът винаги е текущото влизане, освен ако EXECUTE AS както е използвано:не се проверяват само разрешенията за DML за реферирани обекти. Опитайте OBJECT_ID(referencedtable) в съхранена процедура, където не са присвоени права на referencedtable. Дава NULL. Ако се изпълни от собственика на съхранената процедура, тогава тя ще даде стойност, защото собственикът има права върху referencedtable



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Задайте съпоставяне на база данни в Entity Framework Code-First Initializer

  2. Осигуряване на SQL Server срещу множествено присъединяване

  3. Правилният начин за прилагане на уникално ограничение, което позволява множество NULL стойности в SQL Server

  4. Най-добрият начин за внедряване на одитна пътека в SQL Server?

  5. Връщане на номера на дял за всеки ред при запитване на разделена таблица в SQL Server (T-SQL)