データベースにログインしているユーザーを表示する最も簡単な方法を探しています。もう使用されていない可能性のある古いユーザー アカウントがいくつかあります。それらをオフにして誰が文句を言うかを見る代わりに、誰がログインして何らかのタイプのクエリを実行するかを翌月かそこらで監視する方法があるのではないかと考えました。この種のアクティビティを監視および追跡する最も簡単な方法は何でしょうか?
編集: サーバー上のすべてのデータベースに対してこれを行いたいと思います。
データベースにログインしているユーザーを表示する最も簡単な方法を探しています。もう使用されていない可能性のある古いユーザー アカウントがいくつかあります。それらをオフにして誰が文句を言うかを見る代わりに、誰がログインして何らかのタイプのクエリを実行するかを翌月かそこらで監視する方法があるのではないかと考えました。この種のアクティビティを監視および追跡する最も簡単な方法は何でしょうか?
編集: サーバー上のすべてのデータベースに対してこれを行いたいと思います。
接続しているユーザーを確認するには、アクセスをログに記録できるログオントリガーを使用できます。ログインイベントを監査するために1〜2か月間トレースを実行すると、フェイルオーバー、SQLの再起動などが行われた場合に機能しない可能性があります。
ただし、接続後に誰かが何をしているかを確認するには、ミッチが言ったようにプロファイラーを実際に使用する必要があります
監査ログイン イベントを選択してプロファイラー トレースを実行します。または、標準トレース テンプレートを選択します (そして、おそらくトレース サイズを制限します)。
SQL Server プロファイラーの使用を参照してください。
これを行う最も簡単な方法は、カスタムで作成されたサードパーティのツールを使用して作業を行うことです。それ以外の場合は、(SQLプロファイラーではなく)トレースに煩わされ、結果のデータを定期的にロードして処理する必要があります。私のお金では、それは「簡単な」ことではありません。
あまり助けにはなりません。私が投稿している理由は、誰か(または何か)が1日、1週間、または1か月間ログインしていないからといって、アカウントが遺棄されたという意味ではないからです。遺棄されている可能性があると特定したら、無効にして何が起こるかを確認することをお勧めします。実際に削除する前に、その1か月、4分の1、または1年(システムによって異なります)を指定してください。
(もちろん、その情報を1か月/四半期/年にわたって追跡することは、さらに面倒で面倒です。理想的には、すべてのアカウントが非アクティブ化/削除ルールで作成され、ユーザー/所有者にアクセスするためのルールが通知されます。システム。これはおそらく今は役に立たないでしょうが、次に設計するシステムのためにそれを覚えておいてください。)