用户帐户审核用于许可目的

时间:2016-11-09 18:42:36

标签: sql sql-server tsql sql-server-2008-r2

使用SQL Server 2008R2。

我们正在尝试审核用户登录,以查看用户帐户处于非活动状态的时间以及我们需要提供多少许可证。我目前正在从以下工作中提取信息:

Insert into [User_Login_Audit]
Select 
    login_name,
    max (login_time) as last_login_time,
    last_successful_logon, 
    (select @@servername) as server_instance,
    getdate()
from sys.dm_exec_sessions 
group by login_name, last_successful_logon;

然后我使用链接服务器通过以下查询提取信息:

Use B_DBA
GO


SELECT 
    [Login_name]
    ,max([last_login_time]) as Last_login_date
    ,[server_instance],
    DATEDIFF(day, getdate(), max([last_login_time])) Days
FROM [B_DBA].[dbo].[User_Login_Audit]
where  Login_name not in ('NT AUTHORITY\SYSTEM', 'sa','')
    and last_successful_logon is not null
group by Login_name,server_instance

这是拉

的结果
  

服务器名称| Server \ instance Login_name |   PROD \ account_name Last_login_date | 2016-10-16 11:29:05.950   server_instance | Server \ instance Days | -24

我遇到的问题是,显然sys.dm_exec_sessions没有给我现在处于安全状态的当前活动用户,但是所有已登录的用户,其中许多用户已从安全性的当前访问中删除。

我需要的是一种提取当前处于数据库安全性的Sql用户,Windows用户和Windows用户组登录的方法。我需要知道用户上次登录的时间,以便我可以计算天数,即。 30,60,90。

我正在做的是给我信息,但不是最准确的信息,需要大量的额外工作。我会很感激这方面的选择。

0 个答案:

没有答案