Разрешения на уровне записи - PullRequest
3 голосов
/ 21 октября 2008

В базе данных, которую я проектирую, я реализовал защиту на уровне объекта на основе профиля.

Каждый пользователь может просматривать, редактировать, вставлять, обновлять таблицы базы данных в соответствии с профилями (ролями), членом которых он является.

Теперь необходимо реализовать «Внешних пользователей», которые могут просматривать только соответствующие записи и редактировать некоторые из них (но не основную часть базы данных).

Я работаю над моделью владения записями.

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

Ответы [ 3 ]

3 голосов
/ 21 октября 2008

Вы можете создать VIEW или создать хранимые процедуры и назначать им только права.

ПРОСМОТР - это путь к простой модели безопасности - если она сложная, используйте хранимые процедуры.

3 голосов
/ 21 октября 2008

Вам, вероятно, следует создать VIEW, который ограничивает записи, а затем применить соответствующие права на представление.

0 голосов
/ 22 октября 2008

У меня есть первый черновик. Это идет так:

Приложение представляет собой веб-приложение для управления проектами / отслеживания проблем / управления событиями / совместной работы.

Я создал роль «Внешний пользователь». По умолчанию пользователь в этой роли

  • можно выбрать из лиц
  • может ВЫБРАТЬ ИЗ Единиц (организационных единиц-компаний-отделов и т.д.)
  • может выбрать проекты, назначенные ему
  • можно ВЫБРАТЬ назначенные ему задачи
  • не может ВЫБРАТЬ другие проекты и задачи

Администратор может создать группу пользователей «Внешний партнер» и назначить для нее некоторые проекты и продукты (с проблемами).

Члены этой группы могут ВЫБРАТЬ назначенные объекты.

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

...