面对域组策略,如何管理虚拟账户的登录服务权限?

面对域组策略,如何管理虚拟账户的登录服务权限?

我想使用默认的 SQL Server 设置,该设置使用虚拟帐户 NT SERVICE\MSSQLSERVER 运行 SQL Server 服务。这可确保我的 SQL Server 在其自己的机器上具有有限的访问权限,并且如果被黑客入侵,则无法访问网络资源。但是,我们的域还具有一个组策略,该策略为其他几个(域)设置了“作为服务登录”权限。

您可能已经猜到了,甚至可能经历过我的问题:

当域 GPO 应用于服务器(至少每天一次)时,它会撤消由 SQL Server 安装程序(或 SQL Server Config Mgr,或其他本地计算机策略配置)完成的“作为服务登录”权限分配。然后,下次重新启动 SQL Server 服务时(可能是几小时或几个月后),就会出现错误“服务未启动”错误。

以下是我目前所知道的情况:

  • 我无法将虚拟帐户添加到域 GPO,因为它是机器本地 SID。
  • 域组策略覆盖本地机器组策略,所以我必须对域组策略采取一些措施。

遗憾的是,用户权限分配元素位于“计算机设置\Windows 设置\安全设置\本地策略设置”下,因为它无法引用本地计算机帐户。也许这甚至是一个错误。

以下是我正在考虑的方法:

  • 我可以消除应用“作为服务登录”权限的域 GPO 元素,并通过本地组策略(在一堆服务器上)执行此操作。
  • 我可以将服务器移至未应用此 GPO 元素的 OU。目前有问题的 GPO 是我的默认域策略,因此我必须重新进行配置。
  • 我可以在每台 SQL Server 机器上运行一些工具,以便在域组策略运行之后或足够频繁地重新建立“作为服务登录”,这样我就很少被发现。

有人能给我提供其他建议或可行的解决方案吗?

答案1

如果您将组策略管理控制台添加到有问题的 SQL 服务器,则可以修改您正在讨论的组策略设置以包含“NT Service\MSSQLSERVER”或任何其他“NT Service\xxxx”帐户名称。如果您在另一台服务器上打开 GPO,您将看到一个很长的 SID,而不是漂亮的“NT Service\xxxx”别名。您可以在管理员 powershell 会话中添加 gpmc.msc:

Install-WindowsFeature GPMC

添加这些“NT SERVICE\xxxx”帐户的更好解决方案是添加内置的“NT SERVICE\ALL SERVICES”组 - 这样您就不必单独添加它们,并且在查看 GPMC 时,它也会以人性化格式显示在其他系统上。我在使用 Azure AD Sync 服务时遇到了这个问题,然后在为 RDS 部署安装的 Windows 内部数据库时再次遇到了这个问题。我只能在已经拥有其中一些“NT SERVICE\xxxx”帐户的计算机上添加“NT SERVICES\ALL SERVICES”组。以下几篇文章有助于解释其工作原理:

Install-ADSericeAccount 是否会修改“NT SERVICE\ALL SERVICES” https://docs.microsoft.com/en-US/windows/security/identity-protection/access-control/security-identifiers

正如 Aaron D 所说,最好在 Active Directory 中创建一个服务帐户,而不是使用内置的本地 NT 服务帐户。如果您想采用这种方式,以下是有关使用 Active Directory 托管服务帐户的几篇其他文章:

在 SQL Server 中使用托管服务帐户
为 SQL Server 配置托管服务帐户

答案2

我看到还没有人回答,所以我就给出我的意见。

我认为我会尝试以下方法:

  1. 创建一个名为“SQL Servers”的新 OU
  2. 将 SQL 计算机对象移动到该 OU
  3. 创建名为SQL 登录即服务
  4. 添加所有内容默认域策略
  5. 在 Active Directory 中创建托管服务帐户
  6. 将托管服务帐户添加到“作为服务登录”列表

以下是我发现的几个可能对您有帮助的链接:

配置 Windows 服务帐户和权限
SQL Server 服务帐户 Windows 特权和权限

答案3

我最终做的是:删除应用登录为服务权限的 GPO,并依靠单个机器在这些机器上安装服务时根据需要授予权限。

这是一个相当自我调节的解决方案,因为当您设置服务帐户密码时,services.msc 将从属性页面授予权限。当您安装需要服务的应用程序时,显然会发生类似的事情。

答案4

转到您的 GPO 并添加“NT SERVICE\ALL SERVICES”。这将允许所有虚拟服务帐户运行。

相关内容