我正在用java编写一个应用程序,我想让它能够访问mysql远程服务器。我的问题是,如果应用程序有用户名和密码,有人可以使用它们,并使用我的数据库与不同的软件。有什么办法可以防止吗?
更新
我找到了从安卓设备连接到远程MySQL数据库的这解决方案。你把服务放在中间。就像一个php页面,它用JSON格式对数据进行编码,android应用程序通过http获取这些数据。下面是我找到的示例:连接到MySQL数据库
发布于 2011-12-07 07:44:21
拥有用户名和密码是专门为授予对数据库的访问权限而设计的。这就是重点所在。
您可以做一些额外的工作,比如将数据库连接限制到特定的主机上,这样至少您的付费客户可以访问数据库,而没有其他人可以访问数据库,但是您的客户可能会选择使用不同的软件来访问数据库。除了许可条款之外,没有别的办法。
您可以做的是在您自己的硬件上运行一个中间程序,该程序连接到数据库,并将对数据库的访问限制在您直接管理控制下的软件上。您的程序将验证来自客户控制下的软件的所有请求,并允许您希望允许的查询,并拒绝(并记录)不允许的查询。(您不需要来回发送原始SQL数据--您可以对数据和查询进行任何处理。)
发布于 2011-12-07 07:39:39
您可以在应用服务器上设置JDBC数据源。这里你可以看到甲骨文玻璃鱼的例子。
因此,您的凭据不会在您的代码/资源中使用。
发布于 2011-12-07 07:41:25
如果您说您的应用程序试图远程访问MySQL (而不是在同一个框中),那么我认为您不必担心,因为您的应用程序代码将建立的连接在试图对MySQL服务器进行身份验证和授权时不会公开用户名和密码。
https://stackoverflow.com/questions/8411822
复制相似问题