删除自动创建的NT AUTHORITY和NT SERVICE帐户


8

因此,我最近转移了工作-下面是我在新SQL Server安装的构建脚本中发现的一段代码。

IF EXISTS ( SELECT  *
            FROM    [sys].[syslogins]
            WHERE   [name] = N'NT AUTHORITY\SYSTEM' )
    BEGIN
        DROP LOGIN [NT AUTHORITY\SYSTEM];
    END

IF EXISTS ( SELECT  *
            FROM    [sys].[syslogins]
            WHERE   [name] = N'NT SERVICE\SQLWriter' )
    BEGIN
        DROP LOGIN [NT SERVICE\SQLWriter];
    END

IF EXISTS ( SELECT  *
            FROM    [sys].[syslogins]
            WHERE   [name] = N'NT SERVICE\Winmgmt' )
    BEGIN
        DROP LOGIN [NT SERVICE\Winmgmt];
    END
GO

默认情况下,这些帐户是在SQL Server安装过程中创建的。

是否建议删除上述登录名?这会引起任何副作用吗?这些登录名是做什么用的?

我阅读了可以删除NT SERVICE \ SQLWriter和NT SERVICE \ Winmgmt登录信息吗?但这还不够具体-我可以看到它们所需的内容,但几乎没有。他们需要系统管理员权限吗?等等

例如(摘自“ 配置Windows服务帐户和权限”):

本地系统是一个特权很高的内置帐户。它在本地系统上具有广泛的特权,并充当网络上的计算机。该帐户的实际名称是NT AUTHORITY\SYSTEM

我应该怎么读?是否应该保留这些“高”特权?


请参阅此先前的相关问题。我个人认为只有在(a)这样做有一定好处并且(b)有证据表明副作用不会影响您的情况下,才应该这样做。
亚伦·伯特兰

Answers:


2

在您下注之前,这里是正式文档,您有正当的理由,您可以参考这些帐户的脚本,如下所示:STIG Rule SV-53421r2_rule。这些控件是特定于SQL Server版本的,但是最新版本中还有许多其他控件。如果您在一个受这些控制之下并仍遵守某些更为严格的规定的组织中工作,例如撤销授予公共角色的默认赠款,事情可能会很快变得复杂。

由于我在处于这些控制之下的环境中有一些经验,因此我可以说您可以完全禁用/删除NT SERVICE\SQLWriterNT SERVICE\Winmgmt帐户,但是您需要确保SQL Server服务在具有足够操作系统级别的适当服务帐户下运行权限,例如已充分锁定的域服务帐户,甚至更好的独立或组托管服务帐户。同样,必须谨慎对待OS权限,因为如果您没有执行足够的测试,这确实会闯入卡片屋领域。

对于该NT AUTHORITY\SYSTEM帐户,如果要运行任何可用性组,则不是要删除的帐户。实际上,STIG SV-93835r1_rule提到您应该仅CONNECT SQL使用默认授予的权限来保留它。如果您有一个可用性组,则该帐户还需要具有以下附加权限:

  • 更改任何可用性组
  • 查看服务器状态
  • 执行[sys]。[sp_server_diagnostics]
  • 执行[sys]。[sp_availability_group_command_internal]

这些限制可能会带来极大的痛苦,但是出于合理的原因,您需要限制其使用和权限集。如果您不遵循这些准则,请帮自己一个忙,并注释掉这些步骤。

希望有帮助!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.