我们在 Windows 服务器上共享了一个文件夹,以提供对重要应用程序的访问。在更新应用程序时,我们 (DBA) 会更改共享权限以拒绝对其进行所有访问,然后断开共享上打开的所有文件的连接。在我们完成应用程序更新(对相同文件使用不同的共享)后,我们重新启用对共享的访问。
我们修改共享的方式是使用 MS 管理控制台远程连接到服务器。显然,此功能需要对服务器的管理员访问权限或基础架构团队希望取消的至少某种级别的权限。
问题是,处理应用程序更新的 DBA 如何以尽可能少的服务器权限禁用和启用对共享的访问?
一种可能性,虽然它需要编程,但将编写一个系统服务(因此使用所有必需的权限运行,并设置为手动启动),并授予特定组启动和停止此服务的权限(这很简单,请参阅如何向非域成员服务器上的任意用户或组授予服务的启动/停止/重新启动权限?,您可以使用例如服务安全编辑器或进程黑客来编辑 ACL)。
用户根本不需要任何特权:服务将在启动时执行所需的断开连接/共享更改,并在停止时恢复到正常配置。当您的应用程序必须更新时,执行此操作的用户只需在更新前启动服务,然后停止服务。顺便说一下,这种解决方案被一些软件使用,例如,允许每个人更新它(例如参见Mozilla 维护服务)。