Java:调用操作系统进行管理员级身份验证?

Java:调用操作系统进行管理员级身份验证?,java,authentication,database-design,operating-system,password-protection,Java,Authentication,Database Design,Operating System,Password Protection,我正在为库存数据库制作一个模拟库存程序,我想实现一个功能,如果在用例场景中,仓库接收者(我希望他在公司网络中没有管理员登录状态)会尝试删除数据库的记录,他必须进入操作系统级的管理员身份验证,因为删除记录可能会对税务审计造成严重破坏。如果隔壁办公室的真人可以访问软件,如果接收者通知他的主管他在数据输入(如UPC)中犯了严重错误,那么我想让删除仍然可以访问。然后主管可以通知她的网络管理员 话虽如此,我想知道如何称呼操作系统。因为我以前从来没有这样做过,所以我想到的第一件事是 String admin

我正在为库存数据库制作一个模拟库存程序,我想实现一个功能,如果在用例场景中,仓库接收者(我希望他在公司网络中没有管理员登录状态)会尝试删除数据库的记录,他必须进入操作系统级的管理员身份验证,因为删除记录可能会对税务审计造成严重破坏。如果隔壁办公室的真人可以访问软件,如果接收者通知他的主管他在数据输入(如UPC)中犯了严重错误,那么我想让删除仍然可以访问。然后主管可以通知她的网络管理员

话虽如此,我想知道如何称呼操作系统。因为我以前从来没有这样做过,所以我想到的第一件事是

String adminPassword = JOptionPane.showInputDialog(
                       "Enter Network Administrator Password");

if(callSomeOSFeatureForAdminPasswordReturnsTrue(adminPassword)){ 
    record.delete();
}

很抱歉,如果这是一个愚蠢的问题,但我从来没有做过这样的事情,从安全的角度来看,这是没有意义的,因为那么,如何防止一个思想相当黑暗的程序员传输该字符串呢?这有点相切,但基本上我只想知道我应该查找什么,以确保在数据库记录删除尝试中完成最终用户本地网络管理员级别的身份验证。每年仓库都要审核库存中的所有内容,因此,如果某个接收者认为每次产品暂时用完时都应该使用“删除”,那么审核将是一场噩梦(相信我,我在现实生活中也经历过这些事情,它们就像是仓库里的龙卷风,如果有超过一小部分的东西下落不明,主管们就不会发疯了。)

这不是Java中内置的东西,而是在虚拟机中运行的(大部分)独立于实际操作系统。你必须依靠调用机器上的某些程序来回答这样的问题。这取决于正在运行的实际操作系统,因此它不会跨平台。此外,你不应该要求输入密码,然后将其转发


但无论如何,你不应该这样做——数据库中的权限应该与数据库用户相关——而不是与用户是否是其计算机上的管理员相关。因此,你应该重新考虑那里的安全性。

这真的没有意义。我知道——因此需要询问。java程序能否确保只有具有最终用户网络可以在程序中使用特定的delete()方法。它不是一个真正的数据库,它只是一个模拟数据库,用于我正在编写UML的大学一个学期的项目。需求状态中必须有一个“delete”在模拟数据库中的功能,但同时,我们的业务软件系统老师上学期说,你永远不应该从数据库中删除记录,所以我尝试将其与此项目要求合并,即使它要求我明确允许有人删除模拟记录。也许我不需要详细说明这个项目的范围,但是像大多数项目一样,我们被留在了黑暗中,但它几乎给出了一个解释,并回答了一个问题“不,你不能用Java做那件事”,所以我将把它作为一个答案,要么把记录隐藏在幕后,要么做些别的事情。答案是“不是真正的Java东西”,并且“你不应该把它当作一种安全措施”。你的老师可能想说的是,你应该把一条记录标记为未使用的或类似的东西。你可以实际制作UML参与者等,他们有不同的角色,这样你就有人可以在数据库中创建新项目,但只有高级用户才能删除它们。