これに関する助けが必要です。ユーザーのログイン情報がアクティブなユーザーを引き出していません
私は、ユーザーログインを1日1回プルしてテーブルに挿入するという仕事をしています。これは、ユーザー情報を収集して、しばらくしてどのアカウントを削除できるかを確認することを目的としています。
Insert into [User_Login_Audit]
Select
login_name, max (login_time) as last_login_time,
last_successful_logon, (select @@servername) as server_instance, getdate()
from
sys.dm_exec_sessions
group by
login_name, last_successful_logon;
以下のクエリを使用して、登録されたサーバーを使用してユーザー情報を収集しています。
SELECT
[Login_name],
MAX([last_login_time]) AS Last_login_date,
[server_instance],
DATEDIFF(day, getdate(), max([last_login_time])) Days
FROM
[Benefitfocus_DBA].[dbo].[User_Login_Audit]
WHERE
Login_name NOT IN ('NT AUTHORITY\SYSTEM', 'sa','')
AND last_successful_logon IS NOT NULL
GROUP BY
Login_name, server_instance
私はトップクエリはsys.dm_exec_sessions
からすべての情報を引っ張ることに気付きました。記録するログインの一部は、そのインスタンスのセキュリティから削除されています。私は、インスタンス上にアクティブかつ/または存在するユーザのみが必要です。誰かがインスタンスのセキュリティで現在のユーザーのみを取得する挿入クエリを変更する方法や、2番目のクエリでインスタンス上でアクティブなユーザーを並べ替える方法を提案できますか?
これについての洞察はありがたいです。
が、私は私の問題は、その後、ADグループであると思う: – bwilliamson
t-sqlを使用してActive Directoryに問い合わせることができます。詳細についてはGoogleに問い合わせるか、特定のヘルプが必要な場合はフォローアップの質問をしてください。あなたはメンバーシップを取得するためにグループを繰り返す必要があり、次にそれを相互参照する必要があります。私は個人的にアプリケーションレイヤーを通してこの種のことを行いますが、SQLバッチ内でこれをすべて行うことができます。 – btberry