Предоставление разрешений на выполнение хранимых процедур, функций и представлений

Я использую пользователя, у которого есть только разрешение на чтение. В принципе у него есть разрешение на

  • Connect
  • Выполнить

Однако у него нет разрешений на выполнение функций и хранимых процедур. В моих отчетах я называю свои собственные функции. Я хотел бы предоставить разрешение readonlyuser для выполнения SP, функций и представлений.

Я наткнулся на этот код , который показывает, как предоставить разрешение на выполнение хранимых процедур и функций для конкретного пользователя.

- Grant Execute on all functions for testuser
declare @username varchar(255)  
set @username = 'testuser'  
SELECT 'grant exec on ' + QUOTENAME(ROUTINE_SCHEMA) + '.' +  
QUOTENAME(ROUTINE_NAME) + ' TO ' + @username FROM INFORMATION_SCHEMA.ROUTINES  
WHERE OBJECTPROPERTY(OBJECT_ID(ROUTINE_NAME),'IsMSShipped') = 0   
and ROUTINE_TYPE='PROCEDURE'  

и для функций

declare @username varchar(255)  
set @username = 'testuser'  
SELECT 'grant exec on ' + QUOTENAME(ROUTINE_SCHEMA) + '.' +  
QUOTENAME(ROUTINE_NAME) + ' TO ' + @username FROM INFORMATION_SCHEMA.ROUTINES  
WHERE OBJECTPROPERTY(OBJECT_ID(ROUTINE_NAME),'IsMSShipped') = 0   
and ROUTINE_TYPE='FUNCTION'  

Теперь, похоже, это разрешение применяется только к существующим SP и функциям. Если вы добавите новую функцию, вам нужно снова запустить этот код, чтобы предоставить разрешение.

Вопросы

  1. Если моя вышеприведенная интерпретация не является неправильной, существует ли способ предоставить разрешение на выполнение для пользователя только для чтения, так что у вас есть разрешение на все функции и хранимые процедуры, даже если вы создаете новые функции?

  2. Могу ли я применить те же права на представления?

  3. В этом потоке говорится, что вы не можете предоставить разрешение на выполнение функции, которая возвращает таблицу. Это правда?

Я знаю, что есть несколько вопросов, но все они связаны. Лучше быть в одном месте.

6 голосов | спросил Jackofall 26 PMpThu, 26 Apr 2012 19:06:59 +040006Thursday 2012, 19:06:59

1 ответ


3

Можете ли вы использовать схему, а затем предоставить разрешение на выполнение элементов в схеме пользователю? Более подробную информацию о схеме можно найти здесь: http://msdn.microsoft.com/ан-нас /библиотека /ms187940.aspx

ответил jgardner04 26 PMpThu, 26 Apr 2012 19:41:12 +040041Thursday 2012, 19:41:12

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132