SQL Server 2005, проверка прав - PullRequest
0 голосов
/ 03 августа 2011

Я пишу приложение на C #, работающее с базой данных, SQL Server 2005. Оно использует аутентификацию Windows.

Проблема в том, что пользователь должен получать права в соответствии с информацией, хранящейся в базе данных.

Например, я храню информацию о различных проектах в моей базе данных.У каждого проекта есть лидер, у каждого проекта есть определенное поле, у каждого поля есть администратор.Таким образом, человек, который начал какой-то проект, должен иметь возможность изменять только этот проект.Администратор также может запускать проекты, но не может изменять другие проекты.Это относится к различным случаям выбора, обновления и вставки.

Мне не нравится идея проверять права в вызовах хранимых процедур, потому что все они должны быть переписаны, если права для некоторого класса работников изменены,

Каков наилучший способ контроля доступа в моем случае?

1 Ответ

0 голосов
/ 03 августа 2011

Вы не можете обойти тот факт, что разрешения основаны на данных , поэтому вам необходимо проверить данные перед действием. То есть в коде где-то.

  • В процессе создания / просмотра вы должны проверить, что текущий пользователь является администратором
  • В обновлении proc / view вам необходимо убедиться, что пользователь соответствует столбцу

Это упрощено, но это то, что вам нужно сделать.

Для хранимых процедур вы можете вызвать другой хранимый процесс, который проверит права для централизации всех проверок в нескольких местах для удобства обслуживания.

...