2015-01-14 3 views
3

В моей базе данных SQL у меня есть несколько пользователей с различным разрешением для обновления/удаления данных в определенных таблицах. Можно ли предоставить разрешение для пользователя на основе значения в определенном столбце таблицы? Позвольте мне объяснить это лучше: допустим, у пользователя есть разрешение на удаление данных из этой таблицы, но только если значение столбца в этой строке истинно. Если это правда, это позволит ему удалить эту строку. Если это ложь, это не позволит ему.Установить безопасность строки с условием

+0

СОЗДАТЬ ВИД, КАК ВЫБЕРИТЕ * FROM YourTable ГДЕ КОЛОНКА ИСТИНА. Теперь дайте DELETE perfimssion В этом ВИДЕ. Не буду этого РАБОТЫ, я НЕ уверен. –

+1

Проблема сложнее. Я не могу использовать только столбцы с true. Он используется во многих местах моего приложения. Слишком много, чтобы изменить этот вид в них или сделать 2 отдельных вида. Мне нужно применить разрешение удаления с условием. – Whencesoever

ответ

2

Я думаю, что он доступен, используя триггеры для вставки, обновления и удаления. Вам нужно иметь таблицу/таблицы с сопоставлением разрешений пользователей и непосредственно перед изменением значения, которое необходимо проверить для разрешения. Но вам это действительно нужно? Если будет много изменений, это будет драма. Еще один вопрос: действительно ли вам нужно реализовать этот сценарий на сервере sql. Я думаю, будет лучше проверить разрешение на уровне приложения - при условии, что у вас есть приложение

+0

Моя другая идея заключалась в использовании триггеров. Итак, что мне нужно сделать, невозможно на уровне SQL? Предоставлять разрешения на основе условий в определенных строках? – Whencesoever

+0

и ufortunatelly он используется как 50-60 мест с различными сценариями, где люди могут удалить эти данные, и я хочу добавить некоторый уровень разрешений. – Whencesoever

+0

Я нашел это: http://www.mssqltips.com/sqlservertip/3030/implementing-sql-server-row-and-cell-level-security/ и это: http: //blogs.msdn. com/b/publicsector/archive/2011/08/23/row-level-security-for-sql-server-2008.aspx Проверьте, соответствует ли это вашему сценарию – sdrzymala

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