none
Identificar Usuario Conectados RRS feed

  • Pregunta

  • Buen día, espero estar haciendo la pregunta en el foro correcto. Verán tengo una aplicación que heredé del anterior programador donde vengo laborando y pues vi que en su cadena de conexión del servidor trabaja todo de manera local, es decir todos los que ingresan a la bd aparecen con el usuario NT AUTHORITY\NETWORK SERVICE. Revisé muchos foros para poder obtener a los que se conectan a mi bd y recomiendan usar SP_WHO2 entre otros querys similares, pero el detalle es que siempre aparece NT AUTHORITY\NETWORK SERVICE y no los usuarios de sesión que deberían aparecer al ejecutar en el SQL SP_WHO2. Espero alguien pueda orientarme con ello, ya que es urgente para mi identificar a los que se conectan a mi bd. Gracias
    miércoles, 6 de enero de 2016 12:30

Respuestas

  • Habría alguna forma de darles el acceso sin la necesidad de crearlos uno por uno? 

    Sí: basta con meterlos todos en un Grupo del directorio activo (cosa que probablemente ya está hecha) y luego dar de alta ese Grupo como Login en SQL Server. Ojo si lo das de alta mediante SSMS, tendrás que marcar la casilla de "mostrar grupos" porque sino solo te muestra los usuarios. 
    • Marcado como respuesta Carlos Sk miércoles, 6 de enero de 2016 19:17
    miércoles, 6 de enero de 2016 17:52
  • Sí, es algo en el IIS. Si te está intentando entrar con el IUSR, significa que desde el punto de vista de IIS los usuarios están entrando como anónimos. Es decir, que no has configurado el sitio web para que los usuarios usen autenticación integrada. Esto requiere dos cosas: por una parte, desde la administración de IIS hay que poner en "Enabled" la opción "Windows Authentication" (y posiblemente deshabilitar todas las demás salvo que las necesites para satisfacer algún requisito particular que las requiera). Y también hay que tocar el web.config y prohibir el acceso anónimo (<deny users="?"/>).
    • Marcado como respuesta Carlos Sk viernes, 8 de enero de 2016 12:45
    jueves, 7 de enero de 2016 19:39

Todas las respuestas

  • Si necesitas forzosamente que en el servidor de BD se identifiquen los usuarios, entonces hay que modificar la aplicación web para que pase al servidor SQL cada uno de los usuarios que acceden. De lo contrario, desde el punto de vista del servidor de base de datos existe un único usuario que es la aplicación web, y no le llega ninguna información acerca de qué usuarios físicos se conectaron a la aplicación web.

    Lo más sencillo sería cambiar la cadena de conexión para que el servidor web utilice autenticación integrada, y añadir en el web.config una entrada del tipo <identity impersonate="true" /> para que la aplicación web se ejecute con las credenciales de cada usuario (que, al usar autenticación integrada en el servidor de base de datos, se pasarían automáticamente a dicho servidor). Esto implica que los usuarios a su vez tienen que identificarse ante el servidor web con autenticación integrada, y que tienen que ser miembros del mismo dominio que el servidor web y el servidor de base de datos. También hay que darlos de alta como logins en el servidor de base de datos y darles los permisos adecuados.

    Ojo si el servidor de base de datos no está ubicado en la misma máquina física que el servidor web, en este caso hay que configurar varias cosas a nivel de sistema operativo para que las credenciales puedan dar este "doble salto", de lo contrario te dará un error diciendo "login incorrecto".

    miércoles, 6 de enero de 2016 17:09
  • Hola Alberto

    Gracias por responder. Todos los usuarios están dentro del dominio, pero solo los usuarios de sistema se encuentran registrados en la base de datos. Habría alguna forma de darles el acceso sin la necesidad de crearlos uno por uno? 

    miércoles, 6 de enero de 2016 17:40
  • Habría alguna forma de darles el acceso sin la necesidad de crearlos uno por uno? 

    Sí: basta con meterlos todos en un Grupo del directorio activo (cosa que probablemente ya está hecha) y luego dar de alta ese Grupo como Login en SQL Server. Ojo si lo das de alta mediante SSMS, tendrás que marcar la casilla de "mostrar grupos" porque sino solo te muestra los usuarios. 
    • Marcado como respuesta Carlos Sk miércoles, 6 de enero de 2016 19:17
    miércoles, 6 de enero de 2016 17:52
  • Muchas gracias Alberto
    miércoles, 6 de enero de 2016 19:17
  • Buen día Alberto, tengo una consulta ahora que apliqué lo que me comentaste cuando carga la aplicación sale un error haciendo mención al usuario 

    'NT AUTHORITY\IUSR'

    Esto que que puede deberse? Quizás algo en el IIS?

    jueves, 7 de enero de 2016 14:47
  • Sí, es algo en el IIS. Si te está intentando entrar con el IUSR, significa que desde el punto de vista de IIS los usuarios están entrando como anónimos. Es decir, que no has configurado el sitio web para que los usuarios usen autenticación integrada. Esto requiere dos cosas: por una parte, desde la administración de IIS hay que poner en "Enabled" la opción "Windows Authentication" (y posiblemente deshabilitar todas las demás salvo que las necesites para satisfacer algún requisito particular que las requiera). Y también hay que tocar el web.config y prohibir el acceso anónimo (<deny users="?"/>).
    • Marcado como respuesta Carlos Sk viernes, 8 de enero de 2016 12:45
    jueves, 7 de enero de 2016 19:39
  • Gracias Alberto
    viernes, 8 de enero de 2016 12:45