SQL Server 2008 EF 4 - ограничение записей базы данных, возвращаемых с использованием разрешений? - PullRequest
1 голос
/ 24 февраля 2011

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

Есть ли способ настроить разрешение так, чтобы userA никогда не видел ни одной записи в базе данных, где для этого общего битового столбца было установлено значение true?

Мы используем SQL Server 2008.

В качестве альтернативы мы также используем инфраструктуру сущностей 4.0 в .net 4 (в c #), если у вас есть идеи, как этого можно достичь?

Спасибо за ваш отзыв.

Ответы [ 2 ]

0 голосов
/ 24 февраля 2011

Вы можете определить представление в верхней части таблицы, которое показывает только те строки, в которых для этого «активного» столбца установлено значение 1 (true).

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

0 голосов
/ 24 февраля 2011

Согласно этой превосходной статье TechNet , безопасность на уровне строк действительно возможна с SQL-сервером, если вы соответствующим образом структурируете свою базу данных, используя представления или хранимые процедуры, чтобы ограничить результат для текущего пользователя. Насколько мне известно, SQL Server не имеет встроенной функциональности для блокировки на уровне строк.

...