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

Достъп само за четене до съдържанието на съхранената процедура

Можете да им предоставите VIEW DEFINITION привилегия за тези процедури.
Вижте тук за това какво прави тази привилегия.

Можете да приложите VIEW DEFINITION в различни обхвати:

  • Сървър
  • База данни
  • Схема
  • Индивидуални обекти (напр. процедура, функция, изглед)

Можете също така да използвате заявка за генериране на скрипт за много процедури.
Така че, ако имате потребител Bob :

SELECT N'GRANT VIEW DEFINITION ON '
    + QUOTENAME(SPECIFIC_SCHEMA)
    + N'.'
    + QUOTENAME(SPECIFIC_NAME)
    + N' TO Bob;'
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE = 'PROCEDURE';

това ще ви даде нещо подобно, което след това можете да стартирате:

GRANT VIEW DEFINITION ON [dbo].[aspnet_RegisterSchemaVersion] TO Bob;
GRANT VIEW DEFINITION ON [dbo].[aspnet_CheckSchemaVersion] TO Bob;
GRANT VIEW DEFINITION ON [dbo].[aspnet_Applications_CreateApplication] TO Bob;
...


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Каква е целта на поставянето на 'N' пред параметрите на функцията в TSQL?

  2. Високопроизводителен сървър - какво да използвам?

  3. VB6 ADODB.Recordset Свойството RecordCount винаги връща -1

  4. Случай Когато различна стойност, след това сумира друга стойност?

  5. Актуализиране на сортирането на всички полета в базата данни в движение