Así que recientemente moví trabajos: a continuación se muestra un fragmento de código que vi en nuestros scripts de compilación para nuevas instalaciones de 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
Estas cuentas se crean durante el proceso de instalación de SQL Server de forma predeterminada.
¿Se recomiendan dejar caer los inicios de sesión anteriores? ¿Hay algún efecto secundario que esto pueda causar? ¿Para qué se utilizan estos inicios de sesión?
Leí ¿Puedo eliminar los inicios de sesión de NT SERVICE \ SQLWriter y NT SERVICE \ Winmgmt? pero no es lo suficientemente concreto: puedo ver para qué se necesitan pero muy poco más. ¿Necesitan acceso de administrador de sistemas? etc.
Como ejemplo (tomado de Configurar cuentas de servicio y permisos de Windows ):
Sistema local es una cuenta integrada con privilegios muy altos. Tiene amplios privilegios en el sistema local y actúa como la computadora en la red. El nombre real de la cuenta es
NT AUTHORITY\SYSTEM
.
¿Cómo debo leer esto? ¿Debería dejarse con estos privilegios "altos"?
fuente
Respuestas:
Antes de votar en contra, esta es la documentación formal a la que puede hacer referencia por una razón legítima por la cual estas cuentas se incluirían en la secuencia de comandos como se ve: Regla STIG SV-53421r2_rule . Estos controles son específicos de la versión de SQL Server, pero también hay otros controles en las versiones más recientes. Si trabaja para una organización que se encuentra bajo estos controles y también se adhiere a algunos de los más estrictos, como revocar las subvenciones predeterminadas otorgadas al rol público, las cosas pueden complicarse con bastante rapidez.
Como tengo algo de experiencia en un entorno que se encuentra dentro de estos controles, puedo decir que puede deshabilitar / descartar tanto las cuentas
NT SERVICE\SQLWriter
como lasNT SERVICE\Winmgmt
cuentas, pero debe asegurarse de que su Servicio SQL Server se ejecute bajo una cuenta de servicio adecuada con suficiente nivel de sistema operativo permisos, como una cuenta de servicio de dominio suficientemente bloqueada, o incluso mejor, cuentas de servicio administradas independientes o grupales . Una vez más, los permisos del sistema operativo deben tratarse con cuidado ya que esto se aventura en el territorio de la casa de naipes si no realiza suficientes pruebas.En cuanto a la
NT AUTHORITY\SYSTEM
cuenta, esta NO es una cuenta que desee eliminar si va a ejecutar Grupos de disponibilidad. De hecho, STIG SV-93835r1_rule menciona que debe mantenerlo solo con losCONNECT SQL
permisos otorgados por defecto. En el caso de que tenga un grupo de Disponibilidad, esta cuenta también deberá tener los siguientes permisos adicionales:Estas restricciones pueden ser un problema real, pero hay razones legítimas por las que necesitaría limitar su uso y conjuntos de permisos. Si no cumple con estas pautas, hágase el favor y comente esos pasos.
¡Espero que ayude!
fuente