В настоящее время я разрабатываю приложение для базы данных малого бизнеса, для которого мы планируем перейти на многопользовательский доступ в следующий раз.
База данных в основном содержит проекты (в таблице проектов) с парой соединенных таблиц, содержащих дополнительную информацию.
Одним из требований наших клиентов в отношении многопользовательских операций будет детальный контроль доступа, в основном на уровне проекта (т.е. пользователи имеют доступ только к некоторым проектам). Мне интересно, как это реализовать.
Что несколько усложняет ситуацию, так это то, что доступ к базе данных в основном происходит на собственном уровне персистентности, который создает необходимые SQL-запросы (напоминающие nhibernate).
Единственное решение, которое я мог бы предложить, - это реализовать хранимые процедуры (или представления для доступа на чтение?) Внутри базы данных, которые реализуют проверки доступа. Поскольку наш уровень постоянства в настоящее время полагается на полный доступ к таблицам, это будет означать реализацию представления чтения, одну команду вставки и одну команду удаления для каждой таблицы и изменение уровня сохранения для использования этих команд (вместо создания запросов INSERT / DELETE) ,
Мне интересно, есть ли другое решение, не требующее изменения нашего кода ...