我的商店里有一个小型POS系统,我想创建一个新的应用程序并将其安装到我的笔记本电脑,问题是即使在很远的地方也可以访问数据库。我可以在哪里上传我的数据库,以便通过互联网访问?
我正在使用MySQL和C#windows表单应用程序。
答案 0 :(得分:1)
您的问题听起来更像是系统架构,而不是基于实际代码的问题。
如果您想在外出时访问POS数据库,那么有几种解决方案。
即使您身在校外,也可以使用VPN /隧道安全地访问内部网络。然而,这可能很难设置。
我实际建议的解决方案是,您确实将数据库放在云端,但要确保数据库端口对外界是封闭的。如果您希望从数据库获取数据,可以通过与数据库在同一台计算机上托管的MVC Web服务应用程序来实现。 这样,您就可以使用自定义应用程序逻辑控制对数据库的访问。
因此,让我们想象一下如何实施
您向端点发送JSON Rest请求:
https://example.com/POSAPI/GetTransactions
{
"SessionToken:"j9hf928hjo2ij09kr8023",
"FromDate":"20-02-2018",
"ToDate":"29-02-2018",
"AmountToReturn":"45"
}
然后根据您提供的SessionToken进行身份验证 - 此值将对用户进行5分钟的身份验证等
来自端点的响应将发回FromDate和ToDate之间发生的45个事务。
如果是基于客户端的应用程序,大多数人都会同意您的C#应用程序不应直接访问数据库。 C#应用程序可以轻松拆解以获取存储的凭据。 最好将数据库访问权限限制在基于Web的API上,并通过该API控制数据流和访问。
我很欣赏这可能是一个学习曲线,可能不是您希望的最简单的解决方案,但大多数人会同意直接数据库访问通常存在安全风险并使用API与数据库交互通常是最佳做法。