Я пишу приложение на С#, работающее с базой данных SQL Server 2005. Оно использует аутентификацию Windows.
Проблема в том, что пользователь должен получить права в соответствии с информацией, хранящейся в базе данных.
Ф.э. Я храню информацию о различных проектах в своей базе данных. У каждого проекта есть лидер, каждый проект принадлежит определенному полю, у каждого поля есть администратор. Так что человек, начавший какой-то проект, должен иметь возможность модифицировать только этот проект. Администратор также может запускать проекты, но по-прежнему не может изменять другие проекты. Это относится к различным случаям выбора, обновления и вставки.
Мне не нравится идея проверять права в вызовах хранимых процедур, потому что все они должны быть переписаны, если права для какого-то класса воркеров изменены.
Как лучше всего контролировать доступ в моем случае?