为什么不';不能直接将android连接到数据库?

为什么不';不能直接将android连接到数据库?,android,mysql,sql,sql-server,security,Android,Mysql,Sql,Sql Server,Security,我看到许多人试图直接将Android设备连接到SQL Server或MySql之类的数据库中,答案总是一样的:使用web服务。为什么不直接将Android设备与数据库连接?我的Android应用程序正在使用本地网络。原因有很多 安全性-如果用户具有直接访问权限,他们可以从您的数据库中获取任何信息。另外,他们会在你的数据库中输入密码。因此,如果您使用的SQL server存在缺陷,则他们可以利用该缺陷进行攻击。此外,如果您的权限设置错误,可能会擦除您的数据库 速度-如果用户经常使用大型查询,那么它

我看到许多人试图直接将Android设备连接到SQL Server或MySql之类的数据库中,答案总是一样的:使用web服务。为什么不直接将Android设备与数据库连接?我的Android应用程序正在使用本地网络。

原因有很多

  • 安全性-如果用户具有直接访问权限,他们可以从您的数据库中获取任何信息。另外,他们会在你的数据库中输入密码。因此,如果您使用的SQL server存在缺陷,则他们可以利用该缺陷进行攻击。此外,如果您的权限设置错误,可能会擦除您的数据库
  • 速度-如果用户经常使用大型查询,那么它可能会快速而不必要地使您的系统陷入困境。如果你通过一个web界面,你可以控制它
  • 可访问性-几乎所有东西都支持Web查询。它需要特殊的客户端直接访问SQL数据库

  • 但是如果您完全信任您的用户,拥有正确的库/驱动程序,那么您可以允许直接查询,甚至可能会更快一些。

    原因在于连接

    你不确定你需要多少时间来维持这个连接,如果它是稳定的,如果你不想失去它


    其次,对web服务进行了优化,以检索信息,并使用standarts漂亮地为其提供服务。如果你的应用程序直接连接到数据库服务器,你还可以缓存信息以节省数据库的空间,你必须硬编码用户名/密码,这是非常不安全的。使用某些工具,攻击者可以反编译您的apk,并以这种方式访问用户名/密码,并且可以通过读(+写)访问连接到您的数据库,而无需使用您的应用。

    另一个不直接访问数据库的原因

    问题如果更改了数据库体系结构。 你有两个解决方案

    1-在直接访问中,您需要更新每个客户端应用程序

    2-使用服务您只需升级服务。

    同时增加phohe中的内存大小,我们是否将数据库保存在手机中?我真正的问题是:例如,运行在Windows上的C#应用程序是否也一样。由于完全相同的原因,最好使用web服务,而不是使用直接连接。但不应该是这样,肯定有一些不同。作为一个使用直接连接的软件开发人员,要么我做得不对,要么我还没有注意到其中的差异。