将Windows权限委派给不同的pipe理员组

我们有一些Windows服务器。 他们正在运行各种服务,DNS,SQL Server,IIS,Oracle等。

我们想要build立几个AD组,比如说DBA,WebAdmin和SAPAdmin。

然后,我们要将这些组委托给这些Windows服务器上的权限。 这里有些例子

  1. DBA只能在Oracle数据库相关服务和SQL Server相关服务上启动/停止服务,而不能启动/停止服务
  2. DBA可以启动Oracle / SQL Server相关软件,但不能启动其他软件
  3. DBA可以安装/卸载Oracle / SQL Server相关的修补程序,但不能安装其他程序
  4. DBA可以触摸数据库文件或相关registry,但不能访问同一服务器上的其他数据库(例如Web服务器)

对WebAdmin和SAPAdmin也有类似的要求。 目前,我们允许所有这些用户login到服务器框并完成他们的工作,但不幸的是,我们无法find完全locking所有权限的方法。 我可以设置ACL的服务,registry和文件,以满足我的要求的一部分。

我现在有两个问题。

  1. 我仍然无法想出一个办法来阻止用户执行不相关的软件或安装不相关的软件/补丁。

  2. 我仍然无法想出一个方法来阻止特定的pipe理单元执行。 我可以阻止一个EXE文件执行通过设置其ACL,但我不能阻止一个特定的pipe理单元通过设置其DLL的ACL

如果没有办法直接解决上述问题,我很乐意采取任何解决方法。 底线是给予每个组最小的权限,避免不同的人在共享服务器上搞砸别人的软件。

不幸的是,你会相当困扰Windows服务器 – 操作系统devise在许多情况下不会让你做你需要做的事情来实现“最小特权”。 尽pipe您当然可以configuration软件限制策略以防止未经授权的应用程序运行,并设置组策略以允许用户启动/停止某些服务 ,但在日常pipe理工作中会遇到很多问题:

  1. 安装大多数补丁程序可能需要“pipe理员”权限,即使用户对程序目录具有“完全控制”权限,也不能以“正常”用户权限解决
  2. 由于Windows Server中非常简单的资源pipe理function(不能限制给予用户进程的内存或CPU时间),数据库pipe理员仍然可以在服务器上执行操作,严重影响其他正在运行的进程
  3. 如果你让你的DBA用户在本地pipe理员,无论你采取什么行动来“locking”他们,他们将能够规避任何限制,打破任何devise的监狱

正如bot403所指出的那样,pipe理分离最好是通过build立专用服务器来尽可能减less干扰不相关的服务。 尽pipe以内存和处理开销为代价,但虚拟化应该可以帮助您。 您可以通过不完全虚拟化主机来最小化开销,但是使用允许足够的资源pipe理和pipe理分离的容器。 以Parallels Virtuozzo为例,看看这可能是什么样子。