Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Como sacar usuarios Inactivos despues de x tiempo SQL Server2000?

Estas en el tema de Como sacar usuarios Inactivos despues de x tiempo SQL Server2000? en el foro de SQL Server en Foros del Web. Tengo un ERP Intelisis con el numero suficiente de licensias, pero hay usuario que solo consultan y dejan su sesion abierta gastandome las licensias necesito ...
  #1 (permalink)  
Antiguo 29/09/2010, 10:52
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1
Antigüedad: 14 años, 2 meses
Puntos: 0
Como sacar usuarios Inactivos despues de x tiempo SQL Server2000?

Tengo un ERP Intelisis con el numero suficiente de licensias, pero hay usuario que solo consultan y dejan su sesion abierta gastandome las licensias necesito desconectarlos de la BD despues de 15 minutos de inactividad, soy nuevo en el uso de SQL y vi algunos codigos que no se donde meterlos, agradeceria infinitamente la ayuda.
  #2 (permalink)  
Antiguo 29/09/2010, 21:59
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 5 meses
Puntos: 180
Respuesta: Como sacar usuarios Inactivos despues de x tiempo SQL Server2000?

Checa este codigo:

Código SQL:
Ver original
  1. DECLARE @SQL nvarchar(30)
  2. DECLARE @Identificador INT
  3. DECLARE @FechaHora datetime
  4. DECLARE @AHORA Datetime
  5. DECLARE Cursor_Usuarios CURSOR FOR
  6. SELECT spid,last_batch
  7.  FROM master..sysprocesses
  8.  WHERE program_name LIKE 'PONER_NOMBRE_APLICACION' AND
  9.       dbid = 6  AND      --- Id de tu base de datos
  10.       loginame NOT LIKE 'sa%'
  11.  
  12. -- dbid=6 es la base de datos que me interesa, se puede poner otra o no poner nada para que sean todas
  13.  
  14. -- loginame not like 'sa%' --esto es para que no me cierre mis sesiones
  15.  
  16.  
  17.  
  18. SELECT @AHORA=GETDATE()
  19. OPEN Cursor_Usuarios
  20. FETCH NEXT FROM Cursor_Usuarios INTO @Identificador,@FechaHora
  21. WHILE (@@FETCH_STATUS <> -1)
  22. BEGIN
  23.    IF (@@FETCH_STATUS <> -2)
  24.    BEGIN  
  25.       IF ABS(DATEDIFF(MINUTE,@FechaHora,@AHORA))>=30  --- minutos inactivo
  26.       BEGIN
  27.        SET @SQL= 'kill ' + CONVERT(CHAR,@Identificador)
  28.        EXEC sp_executesql @SQL
  29.       END
  30.    END
  31.    FETCH NEXT FROM Cursor_Usuarios INTO @Identificador,@FechaHora
  32. END
  33. CLOSE Cursor_Usuarios
  34. DEALLOCATE Cursor_Usuarios
  35. GO
__________________
MCTS Isaias Islas

Etiquetas: inactivos, server, sql, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:43.