В настоящее время я работаю над преобразованием приложения Windows для настольных ПК в веб-сайт / приложение.Структура данных для всего приложения хранится в базах данных SQL Server.Каждая база данных представляет отдельную «библиотеку».У одного клиента может быть много разных «библиотек» (баз данных), и я собираюсь разместить множество установок клиентов на одном веб-сервере.
Это будет интернет-сайт, поэтому я настоятельно рекомендую использовать предоставляемые Microsoftуправление учетной записью пользователя для доступа к сайту.Я думаю, что тогда я бы предоставил доступ на уровне администратора, который позволил бы пользователю получить права доступа к определенной базе данных.(т.е. по умолчанию создание учетной записи пользователя с помощью механизмов Microsoft не даст никакой реальной функциональности.)
Доступ пользователя будет иметь следующие общие уровни:
1. Доступ для чтения (без этогопользователь даже не должен знать, что библиотека существует)
2. Вставить доступ (пользователь может добавлять записи в систему)
3. Редактировать доступ (пользователь может изменить данные записи)
4. Удалить доступ(как вы думаете, что это делает:)?)
5. Доступ администратора (пользователь может изменять атрибуты других пользователей)
Я рассматриваю модель, в которой на сайте есть одна учетная запись, которая обрабатываетвсе взаимодействия SQL Server.Таким образом, весь код для обработки разрешающих / запрещающих уровней доступа 1–5 выше будет обрабатываться кодом на страницах моего веб-сайта, а не управлением учетными записями пользователей SQL Server.
Я думаю, что у меня будет одна центральная база данных, которая будет содержать все имена пользователей и к каким библиотекам их учетная запись имеет (как минимум) доступ для чтения (доступ уровня 1 сверху).Затем уровни 2–5 будут храниться в каждой базе данных для этого пользователя и этой базы данных.
Мне задаются два вопроса:
- Является ли такой подход разумным?Я упускаю другой способ сделать то, что я хочу (например, с помощью инструментов управления пользователями SQL Server), который был бы более безопасным?
- Если бы я собирался ввести этот метод, как бы я создал учетную запись «SuperUser» наВеб-сайт?Я предполагаю, что это будет какая-то учетная запись «NETWORK SERVICE» или «LOCAL SERVICE», но я все еще немного сомневаюсь, какая учетная запись делает то, что в ASP.NET.
Спасибо!