База данных для программы
Суть в том что у меня появилась потребность написать приложение, которое будет работать с базой данных. Условие в том, что база данных должна быть не локальная а сетевая. Я так понимаю что видимо где-то на хостинге надо ее распологать? Я планирую обращаться к ней через запросы, но вот сколько сервисов не смотрел, везде тредуется прописывать IP для доступа. Так как приложение может быть у кого угодно, то все айпишники не пропишешь.
Помогите мне советом, как к своему приложению прикрутить базу данных, к которой приложение сможет обратиться от куда угодно без всяких заморочек
Ответы (2 шт):
Может быть применена "Трёхуровневая архитектура":
- программа-клиент
- программа-сервер
- база
https://ru.wikipedia.org/wiki/Трёхуровневая_архитектура
Программа-сервер может отвечать за уровень логики / безопасности (не давать клиентам делать и смотреть в базе что угодно).
Программа-сервер предоставляет API для клиентов.
Есть средства упрощения разработки API, например gRPC.
Кажется, я понимаю, о чем идет речь.
Смотрите.
На хостинге 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 (бесплатная для небольших сетей)