我正在用 java 编写一个应用程序,我想让它能够访问 mysql 远程服务器。 我的问题是,如果应用程序有用户名和密码,有人可以获取它们并将我的数据库与不同的软件一起使用。 有没有办法阻止它?
更新
我找到了 this从 Android 设备连接到远程 MySQL 数据库的解决方法。 你把服务放在中间。就像一个 php 页面,它以 JSON 格式编码数据,Android 应用程序通过 http 获取这些数据。 这是我发现的例子: Connecting to MySQL database
最佳答案
拥有用户名和密码专门用于授予对数据库的访问权限。这就是重点。
您可以采取一些额外措施,例如将数据库连接限制到特定主机,这样至少您的付费客户可以访问数据库,而其他人无法访问它,但您的客户可能会选择使用不同的软件来访问数据库。除了许可条款外,别无选择。
您可以做的是在您自己的连接到数据库的硬件上运行一个中间程序,并将对数据库的访问限制为在您的直接管理控制下的软件。您的程序将验证来自客户控制下的软件的所有请求,并允许您允许的查询并拒绝(并记录)您不必允许的查询。 (您不需要来回发送原始 SQL 数据——您可以对数据和查询进行任意数量的处理。)
关于java - 防止未经授权的软件访问mysql数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8411822/