SQL Server访问和使用日志

时间:2014-03-31 17:21:29

标签: sql-server

任何想法? 我有Sql Server Enterprise 64需要查找:

  1. 上次访问SQL Server数据库(时间)
  2. 访问数据库的所有应用程序和/或用户的详细信息(清单)。
  3. 说明:我正在对我的所有数据库(大约120个)进行清点,这将帮助我决定是否保留数据库,这将有助于我做出决定:如果数据库应该保留或者将其与另一个合并。

    我一直在使用下面的脚本,但它们是有限的 1不在2000-05工作。我需要更多细节,如程序名称,法规,主机名,用户信息...... 2 - 需要最后使用的信息 可能需要结合和完善。

    脚本1

    WITH last_query_by_db (dbid, Last_query) 
    
    AS (select dbid, max(last_execution_time) 'Last_query'
    
    from sys.dm_exec_query_stats 
    cross apply 
    sys.dm_exec_sql_text(plan_handle)
    group by
    dbid
    )
    
    select d.name, Last_query
    
    from 
    sys.databases d
    left outer join
    last_query_by_db q on q.dbid = d.database_id
    
    where d.name not in ('master','msdb','model','tempdb')
    order by 1
    

    脚本2

    SELECT HOSTNAME, PROGRAM_NAME, STATUS, SPID 
    
    
    FROM    MASTER..SYSPROCESSES 
    
    WHERE DBID= DB_ID('TestDB')
    
                    AND SPID != @@SPID
    

2 个答案:

答案 0 :(得分:0)

您可以在SQL Server Management Studio中启用登录审核。之后,您可以看到如下日志:

  1. 在对象资源管理器中,展开服务器,展开“管理”,然后展开“SQL Server日志”。
  2. 右键单击日志,然后单击“查看SQL Server日志”。
  3. 来源:MSDN

    要检查应用程序名称,请使用SELECT APP_NAME()。 (Source

    此外,SQL Server中有一个活动监视器可以提供有价值的信息:

    enter image description here

答案 1 :(得分:0)

实施审核会话(仅限企业版)或xevents会话(您使用的是哪个版本?)或登录触发器。

以下是如何实现登录触发器:

http://technet.microsoft.com/en-us/library/bb326598.aspx