2013-07-30 3 views
2

Я создаю группу для пользователей, которым необходимо будет создавать и удалять procs, а также предоставлять разрешения на выполнение для других пользователей.Права доступа к GRANT EXECUTE

GRANT CREATE PROCEDURE TO [xxx\xxx] 
GRANT ALTER ON SCHEMA :: dbo TO [xxx\xxx] 

Однако какие разрешения мне необходимо предоставить группе, чтобы они могли предоставлять разрешения на выполнение для объекта?

Благодаря

+0

[Это может помочь] (http://stackoverflow.com/questions/3998634/sql-server-2008-how-do-i-grant-privileges-to-a-username), это поток о предоставлении различных разрешений , Вы можете просто предоставить этим людям ВСЕ привилегии – tkendrick20

+3

@ tkendrick20 принятый ответ показывает, как предоставить определенные разрешения (но не выполнить, или возможность предоставить выполнение); другие ответы там все, кажется, подразумевают, что «решение» заключается в том, чтобы поместить пользователя в роль db_owner. –

+0

Не может ли это быть решением? – tkendrick20

ответ

5

Согласно the documentation, это должно работать:

GRANT EXECUTE ON SCHEMA::dbo TO [xxx\xxx] WITH GRANT OPTION; 

Однако в моем минимальном тестировании потребовалось:

GRANT CONTROL ON SCHEMA::dbo TO [xxx\xxx]; 

Я настоятельно рекомендую вам не следовать рекомендации в комментариях, которые предполагают, что было бы неплохо «предоставить ВСЕ разрешения» или использовать db_owner или sysadmin. Предоставление кому-то большего разрешения, чем нужно, - это просто ленивый способ обеспечить, чтобы вас уволили позже. Я рекомендую всем, кто защищает эту слепую передачу ключей от замка, чтобы рассмотреть the principle of least privilege.

Смежные вопросы