这种方法最大的问题在于将MySQL凭据硬编码到应用程序中。如果应用程序落入错误的手中,他们可以在寻找凭据并开始删除表时对MySQL数据库造成很多损害。
因此,我考虑开发一个充当MySQL数据库接口的服务器。例如,客户端应用程序将通过TCP连接到服务器,而服务器将连接到MySQL数据库。这样就永远不会向终端用户公开MySQL凭据。但是,这意味着我必须开发一个服务器应用程序,a) 对于我的客户来说,维护和部署会更加困难(与仅设置MySQL服务器相比),b)可能会引入更多错误,因为我还需要构建一个附加系统(与点a有关的部署错误修正等)。
因此,我想到了一种方法,即不在数据库中使用用户表,并使应用程序直接连接到MySQL服务器以获取硬编码凭据,而是将实际的MySQL用户凭据提供给最终用户,他们将在应用程序中输入这些凭据以连接到MySQL服务器。这意味着如果有人拿到应用程序,他们无法对MySQL数据库造成任何损害,但仍然存在将凭据交给错误人员的风险。
有没有其他解决方案可以让桌面应用程序连接到MySQL数据库?除了我想到的这三种方法之外,是否还有其他解决方案?或者您对我的解决方案有什么想法?