2013-05-28 4 views
1

MS SQL 2012. У меня есть несколько схем, один из которых - Storage.Возможности разрешений для пользователей SQL 2012

База данных будет подключена к веб-сайту, поэтому я не хочу позволять пользователю MyWebUser иметь любой доступ к чему-либо, связанному с этой схемой. Сейчас эта схема содержит только таблицы. И пользователь db_datareader & db_datawriterpublic

У меня есть представления и хранимые процедуры настройки, которые привязаны к другим схемам, и я хочу MyWebUser, чтобы иметь возможность использовать эти (только операции CRUD)

Мой вопрос (и я должен спросить, потому что часть этого веб-приложения еще не построена), если я укажу Deny, пользователь может получить доступ к чему-либо, что связано со схемой Storage, и этот пользователь все еще сможет выполнять основные операции CRUD, которые я упоминаю выше?

ответ

3

DENY переопределяет все, так что вы должны быть в состоянии:

alter role db_datareader add member MyWebUser; 
alter role db_datawriter add member MyWebUser; 
deny select, insert, update, delete on schema::Storage to MyWebUser; 
+0

ой ... я знаю, что много: -) ... мой вопрос? Будет ли эффект Схем CRUD ' – Kevin

+1

Это повлияет только на CRUD на схему хранения. И я имею в виду явные выражения вставки, выбора, обновления и удаления в отношении объектов в этой схеме. Если вы делаете моды данных через хранимые процедуры, они все равно будут работать (при условии разрешения разрешения). –

+0

безупречный. да, вся работа будет выполнена через procs .. даже отбор будет сделан через procs ... sweet .... thanks – Kevin

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