База данных для программы

Суть в том что у меня появилась потребность написать приложение, которое будет работать с базой данных. Условие в том, что база данных должна быть не локальная а сетевая. Я так понимаю что видимо где-то на хостинге надо ее распологать? Я планирую обращаться к ней через запросы, но вот сколько сервисов не смотрел, везде тредуется прописывать IP для доступа. Так как приложение может быть у кого угодно, то все айпишники не пропишешь.

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


Ответы (2 шт):

Автор решения: Sergei Kirjanov

Может быть применена "Трёхуровневая архитектура":

  • программа-клиент
  • программа-сервер
  • база

https://ru.wikipedia.org/wiki/Трёхуровневая_архитектура

Программа-сервер может отвечать за уровень логики / безопасности (не давать клиентам делать и смотреть в базе что угодно).

Программа-сервер предоставляет API для клиентов.

Есть средства упрощения разработки API, например gRPC.

→ Ссылка
Автор решения: S.H.

Кажется, я понимаю, о чем идет речь.

Смотрите.

На хостинге timeweb используется mysql.

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

Обычно это делается командой типа

grant all privileges on *.* to 'konst'@'109.252.65.30';

Вообще говоря, можно сделать возможным доступ к базе с любого адреса:

grant all privileges on *.* to 'konst'@'%';

но я не знаю, позволяет ли сделать это интерфейс timeweb.

Но предыдущий отвт тоже правильный, просто сделать трехзвенную архитектуру для начинающего - это, конечно, сложнее, чем просто использовать "двузвенку", где приложение обращается к базе напрямую.

Дополнение, написанное после уточнения вопроса

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

Если речь идет о локальной сети - то можно поставить сервер базы данных в той же самой локальной сети. При этом у Вас пропадёт проблема с ограничениями timeweb для базы данных, но останется еще несколько проблем: нужно будет, чтобы Ваше приложение запускалось одновременно с включением компьютера, работало всё время и периодически обновляло базу, подавая сигнал "эй, я - компьютер с таким то IP и иименем - еще живой!". В по настоящему серьезном случае имеет смысл - для windows - написать так называемый windows service _ сервис, который работает под системный экаунтом, независимо от того, 'вошел' ли пользователь.

А потом Вам понадобится вторая часть программы - которая анализирует эту базу.

Как задача для разработки, на которой можно учиться и вообще совершенствоваться - это неплохая задача.

Но, если возиться не хочется - есть готовые решения для мониторинга. На память сразу приходят zabbix monitor и моя любимая - PRTG network monitor tool (бесплатная для небольших сетей)

→ Ссылка