这可能是一个简单的问题,但由于我在谷歌上找不到最佳答案,我想知道你的想法。
我正在考虑更改我在 WPF 中制作的软件,将其数据从本地服务器访问到云服务器(可能是 Azure)。
最好的方法是直接连接到数据库或通过云中的服务访问(我猜这必须由我开发)。
谢谢!!!
这可能是一个简单的问题,但由于我在谷歌上找不到最佳答案,我想知道你的想法。
我正在考虑更改我在 WPF 中制作的软件,将其数据从本地服务器访问到云服务器(可能是 Azure)。
最好的方法是直接连接到数据库或通过云中的服务访问(我猜这必须由我开发)。
谢谢!!!
一般来说,我会防止通过客户端应用程序直接访问托管在云中的数据库。您将通过公共互联网公开您的数据库端点,从而提供重要的攻击媒介。
通过使用服务,您可以限制该攻击向量。服务本身也是“公开的”,但可以通过 OAuth、AD 等身份验证/授权协议锁定(通常更有效/更容易)。并且服务本身只会公开客户端应用程序所需的操作,而不是访问完整的数据库模式(当数据库在开放的互联网上时,如果有人破解密码)。
您没有提到您是否计划在 IaaS 中使用 Windows Azure SQL Azure 或您自己的数据库。当然,您可以通过防火墙等在 Windows Azure 中托管的 VM 上实现自己的安全性,但这是您需要适应的另一项基础设施任务,如果您的客户端 IP 发生变化等,那么管理它并不是微不足道的.
我认为无论您是否在 Azure 上,这个问题的答案都是一样的。
服务在应用程序和数据库之间添加了一个抽象层,这可能有助于长期维护,但它确实有与之相关的成本(就初始工作而言)和一些潜在的性能损失(尽管这没有很重要)所以最后你必须根据应用程序对其进行加权。
我真的不认为有一个万能的答案。