如何获取特定用户的上次登录日期。我用谷歌搜索并偶然发现了这个问题
SELECT name, accdate FROM sys.syslogins
但accdate
列似乎已被弃用,并且不会更新。
我有另一个线索
SELECT login_name, max(login_time) as last_logged_in
FROM sys.dm_exec_sessions GROUP BY login_name
但它仅向系统用户显示结果,而不是我使用此查询创建的结果
CREATE USER test1 FOR LOGIN test1 WITH DEFAULT_SCHEMA = 'test1'
问题是,如何使自定义创建的用户出现在sys.dm_exec_sessions
中,或者该解决方案的替代方案是什么?
使用sys.dm_exec_sessions系统视图
显示有关所有活动用户连接和内部任务的信息。此信息包括客户端版本,客户端程序名称,客户端登录时间,登录用户,当前会话设置等。
这是一个小脚本希望帮助你!
SELECT login_name [Login] , MAX(login_time) AS [Last Login Time]
FROM sys.dm_exec_sessions
GROUP BY login_name;
UPDATE
关于新登录,您必须首先登录才能获得sys.dm_exec_sessions
的记录
所以使用下一个代码来创建登录: -
CREATE LOGIN NewAdminName WITH PASSWORD = 'ABCDa@12'
GO
CREATE USER [NewAdminName] FOR LOGIN [NewAdminName]
EXEC sp_addrolemember N'db_owner', N'NewAdminName'
现在登录: -
User Name = NewAdminName
Password: ABCDa@12
成功登录后,此登录信息将存储到sys.dm_exec_sessions
中