SQL Server 2016-如何获取用户的上次登录日期?

n

如何获取特定用户的上次登录日期。我搜索并偶然发现了这个查询

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章