我正在编写一个应用程序,该应用程序将被提供给许多客户端,为了不允许他们直接访问我的数据库,我开始使用C ++开发服务器应用程序,该应用程序接收客户端请求,与数据库交互以及发送回复。但这似乎有点复杂,允许客户端应用程序与远程数据库交互是否更好?这有什么风险吗?
第一个解决方案:
答案 0 :(得分:1)
通常,您将使用接口抽象数据库。经典之作就是odata,视觉工作室可以从向导构建为asp web服务。 Joakim建议,这很安静。 https://en.wikipedia.org/wiki/Database_abstraction_layer
答案 1 :(得分:0)
有各种选项,例如'tim'提到的选项,可以在不使用ODATA的情况下完成;这意味着创建一个数据层(单独的应用程序),它将满足客户端的请求,并且不会让他们直接访问数据库。但是,在建议我想知道您如何托管Web应用程序之前? 您仍然可以通过阻止对数据库的远程访问来实现客户端的无访问权限。 关注点取决于您的代码和结构;两种方法都有效!
答案 2 :(得分:0)
如果您有C#客户端,为什么不使用C#WCF服务器?
你在灵魂1中的所作所为通常是最好的做法。 它允许您: *稍后切换数据库。 *从您的客户端隐藏数据库的结构。 意思是如果有人反编译你的客户,他们就不会知道如何攻击你。
但它更复杂,需要额外的工作。
如果您不担心有人会破解您的数据库。 并且知道数据库结构只会经历非常小的变化 EVER 。 你可以跳过这个并将海峡与数据库对话。
但你可能错了。