GRANT EXECUTE для всех хранимых процедур - PullRequest
128 голосов
/ 17 февраля 2012

Дает ли следующая команда пользователю "MyUser" разрешение на выполнение ВСЕХ хранимых процедур в базе данных?

GRANT EXECUTE TO [MyDomain\MyUser]

Ответы [ 4 ]

204 голосов
/ 17 февраля 2012

SQL Server 2008 и выше:

/* CREATE A NEW ROLE */
CREATE ROLE db_executor

/* GRANT EXECUTE TO THE ROLE */
GRANT EXECUTE TO db_executor

Только для пользователя (не роли):

USE [DBName]
GO
GRANT EXECUTE TO [user]
66 голосов
/ 14 ноября 2012

В SQL Server 2005 появилась возможность предоставлять разрешения на выполнение базы данных принципу базы данных, как вы описали:

GRANT EXECUTE TO [MyDomain\MyUser]

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

Вы также можете ограничить предоставлением разрешений на выполнение схемы , если хотите быть более детализированным:

GRANT EXECUTE ON SCHEMA ::dbo TO [MyDomain\MyUser]
12 голосов
/ 20 октября 2014

В дополнение к ответам выше, я хотел бы добавить:


Возможно, вы захотите вместо этого предоставить роль , а затем назначить эту роль пользователям. Предположим, вы создали роль myAppRights через

CREATE ROLE [myAppRights] 

тогда вы можете дать права на выполнение через

GRANT EXECUTE TO [myAppRights] 

на эту роль.


Или, если вы хотите сделать это на уровне схемы:

GRANT EXECUTE ON SCHEMA ::dbo TO [myAppRights]

также работает (в этом примере роль myAppRights будет иметь права на выполнение всех элементов схемы dbo впоследствии).

Таким образом, вам нужно сделать это только один раз, и вы можете легко назначить / отозвать все связанные права приложения для пользователя / от пользователя, если вам потребуется изменить это позже - особенно полезно, если вы хотите создать более сложные профили доступа. 1025 *

Примечание: Если вы предоставляете роль схеме, которая влияет также на элементы, которые вы создадите позже - это может быть полезно или не зависеть от предполагаемого дизайна, поэтому имейте это в виду.

0 голосов
/ 16 июня 2018

GRANT EXECUTE OF PUBLIC

Этот, безусловно, поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...