特定のユーザーの最後にログインした日付を取得する方法を教えてください。 私はGoogleで検索して、このクエリSQL Server 2016 - ユーザーの最終ログイン日時を取得する方法
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を見ると' \t createdate = p.create_date'と 'accdate = p.create_date'と定義されています。 SQL Serverからログイン日を取得できるかどうかはわかりません。この情報を保存するには、何らかの拡張イベントを設定する必要があります。私は*サーバレベルのトリガも設定できると仮定していますが、あなたの挿入するテーブルがパブリックでアクセス可能であることを確認してください。ユーザは誰もDENYを持たない(そうでなければログインできません)。私は本当にトリガーをお勧めしません。 – Larnu
[Stack DBA](https://dba.stackexchange.com/)でこの質問にもっと喜んでいるかもしれません。 @Larnu氏は、SQL Serverはこれを、そのままでは実行しないと言いました。 [拡張イベント](https://msdn.microsoft.com/en-us/library/bb630354%28v=sql.105%29.aspx?f=255&MSPPError=-2147217396)を調べます。 –