我该如何获取某个用户的最后登录日期?我在谷歌上搜索并发现了这个查询
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
中,或者有没有替代解决方案?
accdate
实际上与createdate
相同。如果您查看sys.syslogins
的DDL,您会发现它们被定义为createdate = p.create_date
和accdate = p.create_date
。我不确定您是否可以从SQL Server中获取登录日期。您可能需要设置某种扩展事件来存储此信息。我假设您也可以设置服务器级触发器,但请确保您插入的表可由公共访问,并且没有用户具有DENY
(否则他们将无法登录)。我不太推荐使用TRIGGER
。 - Thom A