Eliminando as contas NT AUTHORITY e NT SERVICE criadas automaticamente

8

Então, mudei recentemente de emprego - um código que vi em nossos scripts de construção para novas instalações do SQL Server está abaixo.

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

Essas contas são criadas durante o processo de instalação do SQL Server por padrão.

É recomendável descartar os logins acima? Existem efeitos colaterais que isso poderia causar? Para que esses logins são usados?

É possível excluir os logins NT SERVICE \ SQLWriter e NT SERVICE \ Winmgmt? mas isso não é concreto o suficiente - eu posso ver o que eles precisam, mas muito pouco mais. Eles precisam de acesso sysadmin? etc.

Como exemplo (extraído de Configurar contas de serviço e permissões do Windows ):

O sistema local é uma conta interna com privilégios muito altos. Possui amplos privilégios no sistema local e atua como o computador na rede. O nome real da conta é NT AUTHORITY\SYSTEM.

Como devo ler isso? Deveria ficar com esses privilégios "altos"?

George.Palacios
fonte
Veja esta pergunta relacionada anterior . Pessoalmente, sinto que isso é algo que deve ser feito apenas se (a) houver algum benefício tangível em fazê-lo e (b) houver provas de que os efeitos colaterais não afetarão você.
Aaron Bertrand

Respostas:

2

Antes de votar, aqui está a documentação formal que você pode consultar por uma razão legítima pela qual essas contas seriam escritas como você vê: Regra STIG SV-53421r2_rule . Esses controles são específicos da versão do SQL Server, mas há vários outros controles nas versões mais recentes. Se você trabalha para uma organização que se enquadra nesses controles e também adere a alguns dos mais rigorosos, como revogar os Grants padrão atribuídos à função pública, as coisas podem se complicar rapidamente.

Como tenho alguma experiência em um ambiente que se enquadra nesses controles, posso dizer que você pode desabilitar / descartar as contas NT SERVICE\SQLWritere NT SERVICE\Winmgmtimediatamente, mas é necessário garantir que o serviço do SQL Server esteja sendo executado em uma conta de serviço apropriada com nível de SO suficiente permissões, como uma Conta de Serviço de Domínio suficientemente bloqueada ou, melhor ainda, Contas de Serviço Gerenciado independentes ou de grupo . Novamente, as permissões do sistema operacional precisam ser tratadas com cuidado, pois isso se arrisca no território da casa de cartas se você não executar testes suficientes.

Quanto à NT AUTHORITY\SYSTEMconta, essa NÃO é uma conta que você deseja descartar se estiver executando um grupo de disponibilidade. De fato, o STIG SV-93835r1_rule menciona que você deve mantê-lo apenas com CONNECT SQLpermissões concedidas por padrão. Caso você tenha um grupo de disponibilidade, essa conta também precisará ter as seguintes permissões adicionais:

  • ALTERAR QUALQUER GRUPO DE DISPONIBILIDADE
  • VER ESTADO DO SERVIDOR
  • EXECUTE EM [sys]. [Sp_server_diagnostics]
  • EXECUTE EM [sys]. [Sp_availability_group_command_internal]

Essas restrições podem ser uma dor real, mas há razões legítimas pelas quais você precisaria limitar seus conjuntos de uso e permissão. Se você não se enquadra nessas diretrizes, faça o favor e comente essas etapas.

Espero que ajude!

John Eisbrener
fonte