it-swarm-es.tech

¿Qué cuenta de usuario recomendaría ejecutar los servicios de SQL Server Express 2008 en un entorno de desarrollo?

La configuración de SQL Server Express 2008 le permite asignar diferentes cuentas de usuario para cada servicio.

Para un entorno de desarrollo, ¿utilizaría un usuario de dominio, un usuario local, NT Authority\NETWORK SERCVICE, NT Authority\Local System o alguna otra cuenta y por qué?

28
Magnus Lindhe

El sistema local no se recomienda, es una cuenta equivalente de administrador y, por lo tanto, puede conducir a una codificación cuestionable que aprovecha los privilegios de administrador que no se permitirían en un sistema de producción ya que los administradores/DBA conscientes de la seguridad realmente no les gusta ejecutar servicios como administrador.

Dependiendo de si la instancia del servidor necesitará acceder a otros recursos de dominio o no, debe determinar con qué tipo de cuenta de bajo privilegio debe ejecutarse.

Si no necesita acceder a ningún recurso de dominio (no anónimo), normalmente creo una cuenta local única de bajo privilegio para que se ejecute con el fin de obtener el beneficio de seguridad adicional de no tener múltiples servicios ejecutándose en el mismo contexto de identidad . Tenga en cuenta que la cuenta de servicio local no es compatible con los servicios de SQL Server o del Agente SQL Server.

Si necesita acceder a recursos de dominio no anónimos, entonces tiene tres opciones:

  1. Ejecutar como ¡Servicio de red que también es una cuenta con pocos privilegios pero que conserva las credenciales de red de las computadoras.
  2. Ejecutar bajo una cuenta de servicio local
  3. Ejecutar bajo una cuenta de dominio personalizado con bajos privilegios locales. Una ventaja de ejecutar bajo la cuenta de desarrolladores es que es más fácil adjuntar depuradores a procesos en su propia identidad sin comprometer la seguridad, por lo que la depuración es más fácil (ya que las cuentas que no son de administrador no tienen el privilegio de adjuntar un depurador a otro proceso de identidades de forma predeterminada ) Una desventaja de usar otra cuenta de dominio es la sobrecarga de administrar esas cuentas, especialmente dado que cada servicio para cada desarrollador idealmente debería tener credenciales únicas para que no tenga fugas si un desarrollador se fuera.

La mayor parte de lo que tiendo a hacer no requiere que el servicio acceda a los recursos del dominio, por lo que tiendo a usar cuentas locales únicas de bajo privilegio que administro. También corro exclusivamente como usuario no administrador (y lo he hecho en XP SP2, Server 2003, Vista y Server 2008 sin mayores problemas), así que cuando tengo casos en los que necesito el servicio para acceder a los recursos del dominio, entonces no me preocupa usar mis propias credenciales de dominio (además de eso no tengo que preocupar a los administradores de la red por crear/mantener un montón de identidades de dominio que no sean de producción).

34
Joe Kuemerle

Depende.

  • Sistema local: nunca, es un privilegio demasiado alto.
  • Servicio de red: tal vez, si necesita conectarse a recursos de red, pero eso es dudoso.
  • Servicio local: probablemente la mejor opción, privilegios limitados, no desbloquee conexiones de red
  • Usuario interactivo local? ¿Realmente necesita tener derechos de inicio de sesión o actuar como usuario?
  • Usuario de dominio? Dios no, a menos que esté accediendo a unidades de red desde dentro; si SQL se vuelve loco, un atacante se autentica contra el dominio.
14
blowdart

MS ahora tiene un buen artículo sobre esto: http://msdn.Microsoft.com/en-us/library/ms143504 (v = sql.105) .aspx

Indican que el servicio local no está permitido para SQL Server Engine. Personalmente, uso el Sistema local solo para evitar problemas durante el desarrollo, pero en producción, la mejor práctica es crear una cuenta de servicio de nivel de dominio con solo los permisos que necesita para hacer el trabajo.

4
Schrodo_Baggins