2009-11-12 2 views
-1

Что такое команда/синтаксис t-sql для запрета разрешений на выполнение для ВСЕХ, за исключением dbo на хранимых процедурах? Я хочу предоставить выполнение роли, и пользователи затем наследуют права на основе тех ролей, к которым они принадлежат. поэтому я хочу, чтобы новым пользователям было отказано в выполнении всех хранимых процедур, которые я создаю.T-SQL DENY EXECUTE

благодаря

жаль - я должен упомянуть, что я сделал это для базы данных уже. Я пытаюсь создать db снова, но, похоже, забыл код о том, как я это сделал.

Я думал, что это было сыном, как «отрицать исполнение для всех»?

ответ

0

Если вы явно запрещаете им разрешения на эти объекты, добавление их в роль, которая может их выполнить, не будет работать - у DENY есть приоритет. По умолчанию у пользователя нет прав на выполнение хранимой процедуры - разрешение должно быть явно предоставлено либо пользователю, либо роли, к которой они принадлежат. Вам действительно нужно больше, чем просто по умолчанию?

+0

грант будет предоставлен ролям. Мне просто нужно, чтобы ошибка была лишена выполнения. все через хранимые процедуры, и безопасность основана на доступе через роли в настоящее время, если я удаляю хранимую процедуру и повторно ее создаю (вместо изменения), даже как dbo, я не могу ее выполнить, если я не назначу ее роли и грант выполнить через роль. на новом db, похоже, он не работает. – azad

+0

Явный DENY заблокирует их от выполнения хранимой процедуры независимо от разрешений любой роли, к которой они принадлежат (кроме тех, что они также являются db_owner). Значение по умолчанию (т. Е. Отсутствие разрешений) не позволит им выполнять хранимые процедуры. – MartW