确定运行Java应用程序的计算机是否是SQL Server实例的主机

时间:2017-03-17 09:12:09

标签: java sql-server jdbc

我正在开发一个使用SQL Server 2012(及更高版本)作为数据库的Java应用程序。我编写了一个类,用于从应用程序创建数据库备份,而不用到后端。 在本课程中,我有JFileChooserJButton启动。然后,用户浏览并选择服务器或网络上保存备份的位置,然后将其保存为默认备份目标目录,并进行备份或计划备份。 使用JFileChooser选择的路径存储在数据库中,每当自动备份完成时,将使用此路径。

我想要的是当应用程序在服务器上运行以允许本地磁盘和网络上的目录时,但是当应用程序从非服务器的计算机运行时,只能设置网络目录。这是为了避免设置对服务器无效的磁盘位置。例如,设置为 J:\ Backups 中的备份,但服务器上没有 J 分区。 (我们可以假设这些网络位置将允许在其中创建备份)。

我发现如果我能够确定当前机器是否是服务器,我将能够创建可以执行此操作的方法,但我在开始时遇到困难:如何确定用户是否正在服务器机器上工作。 如果我不是很清楚,请道歉。谢谢大家

1 个答案:

答案 0 :(得分:0)

我认为最干净的方法是在后端添加一个验证所选目录的函数,允许您实际检查服务器是否可以从应用程序的每个实例访问所选目标(这可能包括其他情况,如选择网络上的目录但无法从服务器访问,例如)

否则,您可以获取本地计算机的IP并将其与服务器的IP进行比较,如果本地计算机不是服务器,则过滤所选目标。