Как организовать доступ к БД/папкам через сервис по идентификатору доступа?

Всем доброго времени суток!

Описание:
Было приложение на C# и работающее с базой данных MySQL через Connector.NET (объекты MySqlConnection, MySqlCommand, MySqlDataReade, MySqlDataAdapter и пр.). Работа с базой осуществлялось на локальном хосте. Вообще приложение предназначено для автоматизации работы поликлиники.
Теперь задача:
1) разделить приложение на несколько, т.е. для пациентов одно приложение, для сотрудников другие приложения (имеются ввиду клиентские приложения);
2) перенести базу в СУБД PostgreSQL, которая будет теперь на удаленной машине;
3) предоставить доступ к некоторым файлам на сервере, как пациентам (для загрузки), так и сотрудникам (для загрузки/изменения/выгрузки);
В принципе я бы мог сделать все эти 3 пункта, но как я думаю коряво. Например 3 пункт я у меня получалось делать по SSH. Но не правильно же будет и пациентов и сотрудников пускать на сервер под разными пользователями ОС по SSH, пусть даже и с ограниченными правами?(или нет?)

В чем проблема:
Хотелось бы реализовать что-то вроде распределенной системы, чтобы был какой-то отдельный сервис для доступа к каталогам и отдельный для доступа к БД, которые бы анализировали некий идентификатор для доступа и подключались/не подключались к хосту/базе соответственно, под определенным пользователем. Получается нужен еще нужен какой-то сервер, который выдавал бы эти идентификаторы доступа (для пациентов исходя из специального номера, а для сотрудника из логина и пароля).

Читал, что connection string лучше не хранить в приложении (так было в старом), а лучше организовывать это через сервисы. И вообще с таким подходом система кажется более логичной, модульной и безопасной. И вообще как-то хочется решить вопрос с привилегиями.

Вопросы:
1) Как реализовать все что я написал? Что использовать? Направите пожалуйста на правильный путь!
2) Такое вообще делают? Как это вообще организуют такие системы что я написал?
3) Если такое делают, то как сделать такой сервер который раздавал бы эти идентификаторы (токены или или ключи доступа), на чем писать?

Простите что так много текста, и если написал полную ахинею, раньше ничего подобного не делал.
  • Вопрос задан
  • 124 просмотра
Пригласить эксперта
Ответы на вопрос 1
@den_labs
>>2) перенести базу в СУБД PostgreSQL, которая будет теперь на удаленной машине;
Делайте Web Api сервис (можно и не один), который будет крутиться на удалённой машине и работать с PostgreSQL. А также будет отвечать на запросы от приложений (для пациентов, для сотрудников).

>>1) разделить приложение на несколько, т.е. для пациентов одно приложение, для сотрудников другие
это может остаться даже одно приложение, просто на уровне прав скрывать для юзера лишние вкладки/контролы

>>3) предоставить доступ к некоторым файлам на сервере, как пациентам (для загрузки), так и сотрудникам
При логине в приложение дёргается Web Api сервис, который выдаёт права (+ некоторый токен) данному юзеру и потом при вызове Web Api методов, надо использовать этот токен и права

На C# (Web Api, Dapper) это всё можно реализовать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы