哪些人访问了我的SQL SERVER2005?

哪些人访问了我的SQL SERVER2005?

本文的脚本用来从SQL Server 2005的默认跟踪中返回的登录信息。

sys.traces提供默认跟踪的信息,如文件的路径和文件的最大值。

fn_trace_gettable以表格的方式从跟踪文件中获取数据。

 

/***********************************************************************/

SELECT
   I.NTUserName,
   I.loginname,
   I.SessionLoginName,
   I.databasename,
   Min(I.StartTime) as first_used,
   Max(I.StartTime) as last_used,
   S.principal_id,
   S.sid,
   S.type_desc,
   S.name
FROM
   sys.traces T CROSS Apply
   ::fn_trace_gettable(CASE
                          WHEN CHARINDEX( '_',T.[path]) <> 0 THEN
                               SUBSTRING(T.PATH, 1, CHARINDEX( '_',T.[path])-1) + '.trc'
                          ELSE T.[path]
                       End, T.max_files) I LEFT JOIN
   sys.server_principals S ON
       CONVERT(VARBINARY(MAX), I.loginsid) = S.sid 
WHERE
    T.id = 1 And
    I.LoginSid is not null
Group By
   I.NTUserName,
   I.loginname,
   I.SessionLoginName,
   I.databasename,
   S.principal_id,
   S.sid,
   S.type_desc,
   S.name

/****************************************************************************************************/

你可能感兴趣的:(JOIN,sql,server,脚本,Path)