如何获取特定用户的上次登录日期。我搜索并偶然发现了这个查询
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;
更新
关于新登录,您必须首先登录才能获取记录 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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句