2016-04-17 1 views
0

Я кодирую приложение, которое будет предоставляться многим клиентам, чтобы не разрешать им прямой доступ к моей базе данных. Я начал разрабатывать серверное приложение с C++, которое получает клиентские запросы, взаимодействовать с базой данных и отправлять ответы. но это кажется немного сложнее, лучше ли позволить клиентскому приложению взаимодействовать с удаленной базой данных? и есть ли риск с этим?Приложение для клиентского сервера C#/C++

Первое решение:

enter image description here

Второе решение: enter image description here

+0

Просто рекомендация. Почему бы не работать с RESTFUL api вместо этого? –

ответ

1

Обычно вы бы абстрагировать база данных с интерфейсом. Классикой будет odata, которую визуальная студия может создать как веб-сервис asp от мастера. Это успокаивает, как рекомендовал Йоаким. https://en.wikipedia.org/wiki/Database_abstraction_layer

0

Существуют различные варианты, например, упомянутые «tim», которые могут быть выполнены без использования ODATA; это означает создание уровня данных (отдельное приложение), которое будет обслуживать запросы от клиента и не позволит им напрямую обращаться к базе данных. Однако, прежде чем предлагать, я хотел бы узнать, как вы размещаете веб-приложение? Вы по-прежнему можете получить доступ без доступа к клиенту, заблокировав удаленный доступ к базе данных. Проблемы зависят от вашего кода и структуры; оба подхода действительны!

0

если у вас есть клиент C#, почему бы не использовать C# WCF-сервер?

Что вы делаете в душевном состоянии 1, как правило, является лучшей практикой. позволяет: * позже переключить базу данных. * скрывает от вашего клиента структуру базы данных. означает, что если кто-то декомпилирует вашего клиента, он не будет знать, как атаковать вас.

но он более сложный и требует много дополнительной работы.

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

, но вы, вероятно, ошибаетесь.