阻止从未经授权的软件访问mysql数据库

时间:2011-12-07 07:32:22

标签: java mysql authentication remote-access

我在java中编写应用程序,我想启用它来访问mysql远程服务器。 我的问题是,如果应用程序有用户名和密码,有人可以使用它们并使用我的数据库与不同的软件。 有没有办法阻止它?

更新

我找到了this解决方法,用于从Android设备连接到远程MySQL数据库。 你把服务放在中间。就像一个php页面,它以JSON格式编码数据,android应用程序通过http获取。 这是我发现的例子: Connecting to MySQL database

4 个答案:

答案 0 :(得分:4)

具有用户名和密码专门用于授予对数据库的访问权限。这就是重点。

您可以采取一些额外的长度,例如限制与特定主机的数据库连接,因此至少您的付费客户可以访问数据库而没有其他人可以访问它,但您的客户可能会选择使用不同的软件来访问数据库。除了许可条款之外,别无选择。

可以做的是在您自己的硬件上运行中间程序,该程序连接到数据库并将对数据库的访问限制为受您直接管理控制的软件。您的程序将验证来自客户控制下的软件的所有请求,并允许您要允许的查询并拒绝(并记录)您不必允许的查询。 (您不需要来回发送原始SQL数据 - 您可以对数据和查询进行任何数量的处理。)

答案 1 :(得分:0)

您可以在应用程序服务器上设置JDBC数据源。 Here您可以看到Oracle Glassfish的示例。

因此,您的凭据不会在您的代码/资源中使用。

答案 2 :(得分:0)

如果您说有一个应用程序尝试远程访问MySQL(不在同一个框中),那么我认为您不必担心,因为您的应用程序代码将建立的连接不会公开用户名尝试对MySQL服务器进行身份验证和授权时的密码和密码。

答案 3 :(得分:0)

您可以限制对MySQL服务器的访问,以便只有某些IP地址或IP范围可以访问它。

作为旁注,请确保您在应用程序中使用的用户仅具有数据库所需的权限。例如,用户可能不需要能够创建或删除表。您甚至可以在表级和列级指定用户的权限。

相关问题