Cómo hacer más difícil acceso no deseado a SQL Server 2005 por un administrador de sistema operativo


INTRODUCCIÓN


El programa de instalación de Microsoft SQL Server 2005 crea un grupo local de Windows para cada servicio que se instala. El programa de instalación de SQL Server 2005 agrega la cuenta de servicio para cada servicio a su grupo correspondiente. Para una instalación de clúster de conmutación por error de SQL Server, los grupos de dominio de Windows se utilizan de la misma manera. Estos grupos de dominio se deben crear un administrador de dominio antes de ejecutar el programa de instalación de SQL Server 2005. La lista de control de acceso de sistema (SACL) agrega todos los derechos en Windows NT y los permisos necesarios para un servicio específico para cada grupo de Windows. El administrador del dominio no concede permisos directamente a la cuenta de servicio.

Además, los grupos de Windows que creó para SQL Server 2005, SQL Server Agent y el grupo BUILTIN\Administrators se conceden a los inicios de sesión de SQL Server 2005 que se suministran en la función fija de servidor SYSADMIN de SQL Server 2005. Esta configuración permite a cualquier cuenta que sea miembro de estos grupos para iniciar sesión en SQL Server 2005 mediante una conexión autenticado de Windows NT. Porque el usuario tiene la pertenencia a un grupo de la función fija de servidor SYSADMIN de SQL Server, el usuario se registra en SQL Server 2005 como un administrador de sistemas de SQL Server 2005. (El usuario está conectado mediante la cuenta sa). A continuación, el usuario tiene acceso ilimitado a la instalación de SQL Server 2005 y a sus datos. Además, cualquier usuario que conozca la contraseña para la instancia de SQL Server 2005 o para la cuenta del servicio Agente de SQL Server puede utilizar el servicio de cuenta para iniciar sesión en el equipo. A continuación, el usuario puede realizar una conexión autenticado de Windows NT a SQL Server 2005 como un administrador de SQL Server.

Los grupos de Windows que creó para SQL Server 2005 Reporting Services (SSRS) y para el servicio de búsqueda de texto completo también se conceden a los inicios de sesión de SQL Server. Sin embargo, Reporting Services y el servicio de búsqueda de texto completo no están configurados en la función fija de servidor SYSADMIN.

Funciones del Administrador de base de datos y del administrador del sistema operativo que se separarán estrictamente desean que algunos administradores de SQL Server 2005. Estos administradores desean proteger SQL Server 2005 frente a accesos no deseados por el administrador del sistema operativo.

Más información


Cómo hacer más difícil acceso no deseado a SQL Server 2005 por un administrador de sistema operativo

Para dificultar acceso no deseado a SQL Server 2005 por un administrador de sistema operativo, debe quitar los permisos de inicio de sesión concedidos al grupo BUILTIN\Administradores. A continuación, debe conceder inicios de sesión directamente a las cuentas de servicio para SQL Server 2005 y SQL Server Agent. A continuación, debe aprovisionar los inicios de sesión en la función fija de servidor SYSADMIN. Por último, debe eliminar los inicios de sesión concedidos a sus respectivos grupos de Windows. Para ello, siga estos pasos:
  1. Asegúrese de que tiene una cuenta que sea miembro de la función fija de servidor SYSADMIN. Esta cuenta no se concede el permiso de inicio de sesión de SQL Server 2005 sólo por ser miembro del grupo BUILTIN\Administrators.
  2. Quitar los permisos de inicio de sesión concedidos al grupo BUILTIN\Administradores. Para ello, siga estos pasos:
    1. Inicie sesión en SQL Server 2005 mediante una cuenta de usuario que tenga el permiso ALTER ANY LOGIN.
    2. Expanda seguridad, expanda inicios de sesión, haga BUILTIN\Administratorsy, a continuación, haga clic en Eliminar.
    3. En el cuadro de diálogo Eliminar objeto , haga clic en Aceptar.
    Nota: Después de eliminar el inicio de sesión que se ha concedido al grupo BUILTIN\Administradores, cualquier cuenta que se basa en la pertenencia a este grupo para iniciar sesión en SQL Server 2005 ya no será capaz de acceso a SQL Server 2005.

    Para obtener información acerca de la cuenta de servicio de Microsoft Cluster Service (MSCS), consulte la sección "Cuenta de servicio de Microsoft Cluster Service (MSCS)".
  3. Utilice una cuenta que tenga el permiso ALTER ANY LOGIN para conceder explícitamente los inicios de sesión de SQL Server 2005 directamente a las cuentas de servicio que son utilizadas por SQL Server 2005 y agente de SQL Server. Para ello, ejecute la siguiente instrucción de SQL.
    CREATE LOGIN [<Domain Name>\<SQL Server Service Account>] FROM WINDOWS WITH DEFAULT_DATABASE=[master]
    CREATE LOGIN [<Domain Name >\<SQL Server Agent Service Account>] FROM WINDOWS WITH DEFAULT_DATABASE=[master]
  4. Utilice una cuenta que sea miembro de la función fija de servidor sysadmin para aprovisionar las conexiones que agregó en el paso 2 en la función SYSADMIN fija de servidor sysadmin.
    EXEC master..sp_addsrvrolemember @loginame = N'<Domain Name>\<SQL Server Service Account> ', @rolename = N'sysadmin'
    EXEC master..sp_addsrvrolemember @loginame = N'<Domain Name>\<SQL Server Agent Service Account> ', @rolename = N'sysadmin'
  5. Utilice una cuenta que tenga el permiso ALTER ANY LOGIN para eliminar los inicios de sesión concedidos al grupo de SQL Server 2005 y al grupo de Windows del Agente SQL Server.
    DROP LOGIN [<Computer Name>\<SQLServer2005SQLServerUser>$<Computer Name>$MSSQLSERVER]
    DROP LOGIN [<Computer Name>\<SQLServer2005AgentUser>$<Computer Name>$MSSQLSERVER]
Después de seguir estos pasos, la contraseña para la cuenta de servicio de SQL Server 2005 y de la cuenta del servicio Agente de SQL Server debe mantenerse en secreta del administrador del sistema operativo. Si la cuenta de servicio MSCS se haya aprovisionado en la función fijado de servidor SYSADMIN, la contraseña de cuenta de servicio MSCS debe mantenerse secreta del administrador del sistema operativo. Si el administrador del sistema operativo sabe la contraseña para la cuenta de servicio de SQL Server 2005 o para la cuenta del servicio Agente de SQL Server, el Administrador de sistema operativo puede utilizar la cuenta de servicio para iniciar sesión en un equipo. Después de que el administrador del sistema operativo se inicia sesión en el equipo, el administrador del sistema operativo puede conectarse a la instancia de SQL Server 2005 como un administrador de SQL Server.

Para impedir que el administrador del sistema operativo aprender la contraseña de las cuentas de servicio que son utilizados por SQL Server 2005 y agente de SQL Server, el administrador del sistema de SQL Server debe ser capaz de establecer una nueva contraseña para la cuenta de servicio. En la mayoría de los casos, el administrador del sistema de SQL Server 2005 no es un administrador de sistema operativo. Por lo tanto, debe escribirse una utilidad especial para proporcionar esta funcionalidad. Por ejemplo, podría crear un servicio de confianza que se puede utilizar el administrador del sistema de SQL Server 2005 para cambiar las contraseñas de las cuentas de servicio que utilizan SQL Server 2005. Actualmente, Microsoft no ofrece este servicio.

Cuenta de servicio de Microsoft Cluster Service (MSCS)

En una instalación de clúster de conmutación por error de SQL Server 2005, la cuenta de servicio MSCS se basa en la pertenencia al grupo BUILTIN\Administradores para iniciar sesión en SQL Server 2005 para realizar la comprobación IsAlive. Si quita el grupo BUILTIN\Administrators de un clúster de conmutación por error, debe conceder explícitamente permisos de cuenta de servicio MSCS para iniciar sesión en el clúster de conmutación por error de SQL Server 2005. Para ello, ejecute la siguiente instrucción SQL en la instancia de SQL Server 2005.
CREATE LOGIN [<Domain Name>\<MSCS Service Account>] FROM WINDOWS WITH DEFAULT_DATABASE=[master]
SQL Server 2005 Service Pack 2 agrega nuevas capacidades de diagnóstico para los clústeres de conmutación por error de SQL Server 2005. El diagnóstico de captura automáticamente el estado del recurso de clúster de SQL Server 2005 antes de que el clúster conmuta. La biblioteca de vínculos dinámicos de recursos (DLL) de SQL Server 2005 permite recopilar estos datos diagnóstico más fáciles, como sigue:
  • El recurso de SQL Server 2005 inicia una instancia de la utilidad Sqlcmd.exe bajo el contexto de seguridad de la cuenta de servicio MSCS. A continuación, el recurso de SQL Server 2005 ejecuta una secuencia de comandos SQL a través de una conexión de administrador dedicada (DAC) que toma muestras de varias vistas de administración dinámicas (DMV).
  • El recurso de SQL Server 2005 captura un archivo de volcado de usuario del proceso de SQL Server 2005 antes de que el clúster conmuta.
Puesto que se utiliza una conexión de administrador dedicada para recopilar algunos datos de diagnóstico, debe aprovisionar la cuenta de servicio MSCS en la función fija de servidor SYSADMIN. Si las prácticas de seguridad de su organización, quiere decir que no se puede proporcionar la cuenta de servicio MSCS en la función fijado de servidor SYSADMIN, la cuenta de servicio MSCS puede concederse un inicio de sesión de SQL Server no está configurado en la función SYSADMIN fija de servidor sysadmin. En este escenario, los diagnósticos que se capturan normalmente por la utilidad Sqlcmd.exe fallará porque la utilidad Sqlcmd.exe no puede iniciar sesión en SQL Server 2005. El recurso de SQL Server 2005 DLL debe ser capaz de recopilar un archivo de volcado de usuario independientemente de si la cuenta de servicio del recurso de SQL Server 2005 que está configurado DLL en la función SYSADMIN fija de servidor sysadmin.

Si lo desea, inicie sesión en SQL Server 2005 mediante una cuenta que sea miembro de la función fijado de servidor SYSADMIN. A continuación, ejecute la siguiente instrucción de SQL para agregar la cuenta de servicio MSCS a la función fija de servidor SYSADMIN.
EXEC master.sp_addsrvrolemember @loginame = N'<Domain Name>\<MSCS Service Account> ', @rolename = N'sysadmin'

Cómo cambiar las cuentas de servicio

Aunque los pasos anteriores pueden hacer más difícil para un administrador de sistema operativo para conectarse a SQL Server 2005, los pasos anteriores hacen más engorrosos para cambiar las cuentas de servicio para SQL Server 2005 y agente de SQL Server. Para cambiar las cuentas de servicio para SQL Server 2005 y el agente de SQL Server, siga estos pasos:
  1. Agregue la nueva cuenta de servicio o cuentas de servicio al grupo de Windows o grupos que haya creado para SQL Server y el agente de SQL Server.
  2. Utilice una cuenta que tenga el permiso ALTER ANY LOGIN para crear un inicio de sesión de SQL Server 2005 para las nuevas cuentas de servicio. Para ello, ejecute la siguiente instrucción SQL de la cuenta que tiene el permiso ALTER ANY LOGIN.
    CREATE LOGIN [<Domain Name>\<New SQL Server Service Account>] FROM WINDOWS WITH DEFAULT_DATABASE=[master]
    CREATE LOGIN [<Domain Name>\<New SQL Server Agent Service Account>] FROM WINDOWS WITH DEFAULT_DATABASE=[master]
  3. Utilice una cuenta que está configurada en la función de servidor fija sysadmin para ejecutar la instrucción SQL siguiente.
    EXEC master..sp_addsrvrolemember @loginame = N’ <Domain Name>\<New SQL Server Service Account> ', @rolename = N'sysadmin'
    EXEC master..sp_addsrvrolemember @loginame = N’ <Domain Name>\<New SQL Server Agent Service Account> ', @rolename = N'sysadmin'
    Nota: Esta instrucción agrega la cuenta de servicio de SQL Server 2005 y la cuenta del servicio Agente de SQL Server a la función fijado de servidor SYSADMIN.
  4. Cambiar la cuenta de servicio para el servicio adecuado mediante el Administrador de configuración de SQL Server. Para ello, siga estos pasos:
    1. En el Administrador de configuración de SQL Server, haga clic en Servicios de SQL Server 2005.
    2. (Ratón) en el servicio que desea modificar y, a continuación, haga clic en Propiedades.
    3. Haga clic en la ficha Iniciar sesión y, a continuación, escriba la información de la cuenta de usuario que desea que utilice el servicio.
    4. Haga clic en Aceptar cuando haya terminado de introducir la información de cuenta.
    Nota: Al cambiar la cuenta de servicio, SQL Server Configuration Manager le pregunta si desea reiniciar el servicio.
  5. Utilice una cuenta que tenga el permiso ALTER ANY LOGIN para eliminar los inicios de sesión que se han utilizado por la cuenta de servicio de SQL Server 2005 y la cuenta del servicio Agente de SQL Server. Para ello, ejecute la siguiente instrucción de SQL.
    DROP LOGIN [<Domain Name>\<Old SQL Server Service Account>]
    DROP LOGIN [<Domain Name>\<Old SQL Server Agent Service Account>]
Nota: No es necesario que conceder permisos a las cuentas de servicio nuevo ni nuevos derechos de Windows NT ya agregó las nuevas cuentas de servicio a sus respectivos grupos de Windows en el paso 1.

Recomendación para los procesos de auditoría

Si desea proteger SQL Server frente a accesos no deseados por los administradores del sistema operativo, también debe auditar los siguientes procesos:
  • Auditar inicios y paradas del servidor basado en Windows.
  • Auditoría inicia y detiene los servicios de SQL Server 2005 y de los servicios del agente de SQL Server.
  • Auditar el acceso a los directorios en los que SQL Server se almacenan los archivos de base de datos, archivos de datos, archivos de registro y archivos de copia de seguridad de base de datos.
  • Auditar los cambios a la cuenta de servicio de SQL Server 2005 y a la cuenta del servicio Agente de SQL Server.
  • Auditar inicios de sesión de red y los inicios de sesión de equipo mediante la cuenta de servicio de SQL Server 2005, la cuenta del servicio Agente de SQL Server o la cuenta de servicio MSCS.

La cuenta NT AUTHORITY\SYSTEM

La cuenta NT AUTHORITY\SYSTEM también se concede a un inicio de sesión de SQL Server. La cuenta NT AUTHORITY\SYSTEM está configurada en la función fija de servidor SYSADMIN. No eliminar esta cuenta o quitar de la función fija de servidor SYSADMIN. La cuenta NTAUTHORITY\SYSTEM se utiliza Microsoft Update y Microsoft SMS para aplicar service packs y revisiones a una instalación de SQL Server 2005. El servicio del escritor SQL también utiliza la cuenta NTAUTHORITY\SYSTEM.

Además, si SQL Server 2005 se inicia en modo de usuario único, cualquier usuario que sea miembro del grupo BUILTIN\Administrators puede conectarse a SQL Server 2005 como un administrador de SQL Server. El usuario puede conectarse con independencia de si el grupo BUILTIN\Administrators se concedió un inicio de sesión de servidor que está configurado en la función fijado de servidor SYSADMIN. Este comportamiento es por diseño. Este comportamiento está pensado para ser utilizado para escenarios de recuperación de datos.

Para obtener más información acerca de prácticas recomendadas de seguridad para SQL Server 2005, consulte el tema "Seguridad consideraciones para una SQL Server instalación" en libros en pantalla de SQL Server 2005.

Referencias


Para obtener más información acerca de las consideraciones de seguridad para una instalación de SQL Server, visite el siguiente sitio Web de Microsoft TechNet: