SQL Server 2012 no puede iniciar sesión con la cuenta de la máquina


11

Estamos migrando un sitio de IIS / SQL Server de 2008 a 2012, y tengo un problema con la autenticación. Usamos la Autenticación de Windows para autenticarnos DOMAIN\COMPUTER$, pero esto no funciona, dando un error que dice:

Error de inicio de sesión para el usuario 'DOMINIO \ COMPUTADORA $'. Motivo: no se pudo encontrar un inicio de sesión que coincida con el nombre proporcionado. [CLIENTE: <máquina local>]

Verifiqué que la cuenta existe, e incluso la eliminé y la recreé

create login "DOMAIN\COMPUTER$" from windows

Si lo vuelvo a hacer, obtengo la respuesta:

Msg 15025, Nivel 16, Estado 2, Línea 1
El principal del servidor 'DOMAIN \ COMPUTER $' ya existe.

( DOMAIN\COMPUTERse sustituye por el dominio real y el nombre de la computadora)

Por lo tanto, parece que el sitio está consultando SQL Server, pero SQL Server no está mirando sus inicios de sesión muy duro.

¿Qué me he perdido?

Respuestas:


6

Es muy probable que no sea DOMAIN \ computer $ en absoluto. Se sabe que este mensaje es engañoso. Creo que todo lo que quiere es que "NT AUTHORITY \ NETWORK SERVICE" tenga acceso al servidor. Abra las propiedades de inicio de sesión de SQL Server y agregue esta cuenta. Además, verifique qué usuario se usa en el IIS para hacerse pasar por un usuario anónimo, debería ser algo así como "IUSR_ServerName". Conceder acceso a este usuario también


1
"NT AUTHORITY \ NETWORK SERVICE" ya tiene acceso al servidor. IIS se hace pasar por "IUSR" (no _ServerName). Que yo sepa, esta no es una cuenta real, y no puedo otorgar acceso a "DOMINIO \ IUSR" o "DOMINIO \ IUSR" ya que estas cuentas no existen.
alt

Esto funcionó para mí para un servicio de Windows
user919426

Después de luchar una larga mañana con el Asistente para copiar bases de datos y el asistente para Exportar e Importar SQL, esta es la única respuesta que lo hizo funcionar. ¡Gracias!
Zalakain

6

Tanto @cha como @alt tienen pistas correctas: el mensaje de error es engañoso y Application Pool Identityestá involucrado (bueno, al menos lo fue en mi caso).

Si usa el grupo de aplicaciones de su aplicación IIS Application Pool Identity, la cuenta de usuario que necesita agregar a SQL Server es IIS APPPOOL\your_app_pool_name. Nota: no use el Search...botón en Propiedades de inicio de sesión para encontrar este usuario; lo encontrará, pero lo sustituirá por el MACHINE_NAME\your_app_pool_nameque no funcionará, simplemente escriba IIS APPPOOL\your_app_pool_namecomo nombre de inicio de sesión.


1
Solo funciona cuando su servidor web y su servidor sql están en el mismo cuadro.
maxisam

1
Claro, las cuentas de identidad del grupo de aplicaciones son locales para la máquina AFAIK, por lo que no puede usarlas en otras máquinas. Simplemente use la autenticación de SQL Server en ese caso o ejecute la aplicación web en una cuenta de dominio.
Jakub Januszkiewicz

3

Este problema debe manejarse de manera diferente según la configuración del servidor.

  1. El servidor SQL e IIS están en la misma máquina.

    a. cambiar la identidad del grupo de aplicaciones aNetwork Service

    si. agregue NT AUTHORITY\NETWORK SERVICEa su inicio de sesión del servidor SQL

  2. El servidor SQL e IIS están en máquinas diferentes.

    a. agregue una cuenta de máquina DOMAIN\computer-name$, a su inicio de sesión del servidor SQL

    si. la identidad del grupo de aplicaciones permaneceApplication Pool Identity


1

Logré que funcionara cambiando el sitio en IIS para usar el Application Pool Identity, luego cambiando la identidad del grupo de aplicaciones a Network Service. Siéntase libre de comentar sobre cualquier problema de seguridad que esto pueda plantear.


¿Por qué no usar un usuario de dominio para el grupo de aplicaciones ya que tiene AD instalado o incluso mejor una cuenta de servicio administrada?
Spörri

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.