none
Como Obtener el Nombre de la MAquina desde donde se conecta un Sistema RRS feed

  • Pregunta

  • Saludos a Todos, alguien me pudiera orientar un poco a como obtener en un Store Procedure el nombre de la maquina de la cual se conecta un Cliente, ya que host_name no me funciona, de echo se menciona que si se desea utilizar para cuestiones de seguridad no siempre da la información correcta y por lo tanto no es recomendable, lo que deseo hacer es que un usuario solo pueda entrar al sistema una sola vez, pues como ya se saben algunas contraseñas resulta que las cambiaron pero siguen igual entrando con la cuenta de otro usuario al sistema, espero su apoyo, Gracias...
    lunes, 31 de julio de 2017 23:31

Respuestas

Todas las respuestas

  • Saludos.

    sp_who2, sp_whoami

    O sino ve este post del buen Kenneth (sql student)

    https://dba.stackexchange.com/questions/46009/get-username-and-or-ip-address-responsible-for-a-query

    Aunque no creo que sea una buena solución ya que una aplicación puede abrir mas de una conexión o el cliente tener varias tabs, etc (depende del diseño) por lo cual puede tener varias conexiones abiertas con el mismo usuario.


    • Editado Enrique AA martes, 1 de agosto de 2017 4:07
    • Propuesto como respuesta Willams Morales martes, 1 de agosto de 2017 15:04
    • Votado como útil Moderador M viernes, 4 de agosto de 2017 16:51
    martes, 1 de agosto de 2017 4:03
  • Hola @Roxana69

    lo que deseo hacer es que un usuario solo pueda entrar al sistema una sola vez, pues como ya se saben algunas contraseñas resulta que las cambiaron pero siguen igual entrando con la cuenta de otro usuario al sistema

    Puedes tener una tabla como esta :

    En el cual cuando el usuario ingresa al sistema mediante el login de la aplicación el campo Activo puede estar en 1 y cuando sale del sistema en cero, entonces al momento que un usuario intenta ingresar al sistema validara si se encuentra en el sistema mediante el campo Activo 

    SELECT * FROM Usuarios WHERE UsuarioId = @UsuarioId AND Activo = 1
    
    if(Activo == 1)
    {
       //Usuario ya se encuentra en el sistema
    }
    NOTA: Es una aproximación queda en ti de adaptarlo a lo que necesitas


    Saludos


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú


    martes, 1 de agosto de 2017 11:29
  • Gracias Enrique, ya vi la info de la liga que me comentas y el problema al hacerlo como viene ahi es que me marca el error de VIew SERVER STATE y no logro darle los permisos , ademas segun he leido al darle los permisos estaria comprometiendo la seguridad, algun otra forma que se pueda hacer, Tks.

    martes, 1 de agosto de 2017 16:03
  • Gracias Pedro, Fijate que de echo asi como comentas esta la aplicacion, se guarda en una tabla los usuarios que se conectan, solo que esta aplicacion fue echa por un tercero y dezconozco como lo hiceron, el echo es que si x alguna razon se salen anormalmente, el usuario se queda en la tabla, es aqui donde hay un procedimiento almacenado que estoy modificando a fin de verificar que si se esta conectando desde la misma maquina o IP (Previamente en el registro de la BD) pues que lo deje entrar si la informacion es igual y si no pues que le diga que ya esta conectado en x Equipo, Gracias...
    martes, 1 de agosto de 2017 16:07
  • Quizás te pueda servir un Trigger

    Esto te puede dar una idea.

    https://msdn.microsoft.com/en-us/library/bb326598(v=sql.105).aspx

    • Marcado como respuesta Moderador M miércoles, 23 de agosto de 2017 16:53
    martes, 1 de agosto de 2017 18:21
  • Gracias por la respuesta, es el mismo caso, con el 

    sys.dm_exec_sessions me marca el error antes mencionado de view server state ,

    es lo que estoy tratando ahora de hacer funcionar, como quiera muchisimas gracias,

    se aprende un poco de todo

    martes, 1 de agosto de 2017 18:51
  • Cual es problema con el view server state? no quieres dar este permiso?
    martes, 1 de agosto de 2017 20:46
  • No, no es eso sin o que ya di el permiso con grant view server state to xxx y nada, incluso al public y nada sigue diciendome que no esta el permiso en master, la verdad ya me cicle un poco

    miércoles, 2 de agosto de 2017 14:08