ver valores usuarios usuario tipos tabla obtener linea funciones conectados con actual sql-server sql-server-2005

sql-server - valores - sql server ver usuarios conectados



¿Cómo se encuentra la última vez que se accedió a una base de datos? (7)

En SQL Server 2005, ¿puede determinar fácilmente la última vez que alguien consultó una base de datos?


Encontré esto en MySQLtips , funcionó para mí.

select d.name, x1 = (select X1= max(bb.xx) from ( select xx = max(last_user_seek) where max(last_user_seek) is not null union all select xx = max(last_user_scan) where max(last_user_scan) is not null union all select xx = max(last_user_lookup) where max(last_user_lookup) is not null union all select xx = max(last_user_update) where max(last_user_update) is not null) bb) FROM master.dbo.sysdatabases d left outer join sys.dm_db_index_usage_stats s on d.dbid= s.database_id group by d.name


Necesita tener una auditoría o un rastreo de servidor sql configurado con anticipación.


No es fácil, pero si activa la función de registro de SQL Server, puede examinar los registros usando el software para descubrir cuándo fue la última consulta y de qué se trataba.

-Adán


SQL Server puede registrar la información del evento para los intentos de inicio de sesión y puede verlo al revisar el registro de errores. Al activar el nivel de auditoría de SQL Server.

siga estos pasos para habilitar la auditoría de todas las conexiones / exitosas con Enterprise Manager en SQL Server:

Expande un grupo de servidores. Haga clic con el botón derecho en un servidor y luego haga clic en Propiedades. En la pestaña Seguridad, debajo del Nivel de auditoría, haga clic en todo / éxito, etc. (opción requerida).

Debe detener y reiniciar el servidor para que esta configuración surta efecto


SELECT last_user_seek = MAX(last_user_seek), last_user_scan = MAX(last_user_scan), last_user_lookup = MAX(last_user_lookup), last_user_update = MAX(last_user_update) FROM sys.dm_db_index_usage_stats WHERE [database_id] = DB_ID()

Una advertencia con este método es que la información en el DMV se borrará y anulará cada vez que reinicie SQL Server.


Para ampliar la respuesta de James Allen:

SELECT d.name, last_user_seek = MAX(last_user_seek), last_user_scan = MAX(last_user_scan), last_user_lookup = MAX(last_user_lookup), last_user_update = MAX(last_user_update) FROM sys.dm_db_index_usage_stats AS i JOIN sys.databases AS d ON i.database_id=d.database_id GROUP BY d.name

Utilice esta versión modificada si no desea resultados por contexto de base de datos y desea incluir el nombre de la base de datos al comienzo del conjunto de resultados.


Similar a los métodos anteriores, pero para obtener el resultado simplemente como un valor único para una identificación de base de datos en particular (en este ejemplo es 6 )

select max(LastAccess) from ( SELECT last_user_seek as LastAccess FROM sys.dm_db_index_usage_stats WHERE last_user_seek is not null and [database_id]=6 union SELECT last_user_lookup as LastAccess FROM sys.dm_db_index_usage_stats WHERE last_user_seek is not null and [database_id]=6 union SELECT last_user_seek as LastAccess FROM sys.dm_db_index_usage_stats WHERE last_user_seek is not null and [database_id]=6 union SELECT last_user_update as LastAccess FROM sys.dm_db_index_usage_stats WHERE last_user_seek is not null and [database_id]=6 ) UserAccess