特定のユーザーの最終ログイン日付を取得するにはどうすればよいですか。私はこのクエリにグーグルでつまずいた
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
に保存されます