SQL Serverへの接続に「リモートデスクトップ」を使用する代わりに、私と同僚はSQL Server Management Studioを使用してリモートサーバーに変更を適用しています(各ユーザーは独自の資格情報を持っています)。
私たちの1人は、すべてのデータを危険にさらすSQLテーブルにいくつかの変更を加えました。私たちの一人が有罪だと確信しています。私の質問はこれです。どうすればこれを証明できますか?クライアントからリモートSQL Serverインスタンスへの過去のすべてのリモート接続を表示するクエリの種類はありますか?たぶん、IPアドレス、コンピュータ名、資格情報が必要です。
SQL Server Management Studioには、リモートサーバーログインを表示するためのログファイルやクエリがありますか?
追伸リモートのSQL Serverインスタンスには完全バックアップはありません。ログはかなりきれいです。
これは、SQL Serverへのログイン方法です。
(IP、Port Number)を使用してリモートサーバーにログインできます。デフォルトでは、SQL Serverはログインをログに記録しません。
かなりきれいなログがある場合、ログイン履歴データを取得できません。かなりきれいなログの前にSQLログイン監査を設定している場合。次に、ある時点で、TSQLを介して「SQLログイン監査」の詳細を取得するように変更されます。
EXEC xp_readerrorlog;
SSMSを構成した「SQLログイン監査の詳細」のみが表示されます。お気に入り
1) Failed logins only
2)Successful logins only
3)Both Failed and successful logins
MSDN BOLに従って https://msdn.Microsoft.com/en-us/library/ms176013.aspx 現在のユーザーのリモートサーバーログインの詳細については、TSQLから確認できます。
SELECT login_name ,COUNT(session_id) AS session_count
FROM sys.dm_exec_sessions
GROUP BY login_name;
参照 https://www.mssqltips.com/sqlservertip/1735/auditing-failed-logins-in-sql-server/ および https://msdn.Microsoft.com/ en-us/library/cc280728.aspx
簡単に言えば、変更が発生した時点で監査システムがすでに設置されていなければ、更新の履歴データを表示することはできません。
あなたができることは、ApexSQL Logのようなサードパーティのツールを使用してトランザクションログを読み取り、このような情報がtのどこかに書かれているかどうかを確認することです。ログ。
監査に使用できる多くの履歴データがトランザクションログに書き込まれていることは知っていますが、ユーザー名を見つけることについて100%確信がありません。
これを今後追跡するシステムをセットアップしたい場合は、DDLトリガー、SQLトレースなどを試すことができます。
これを行う最良の方法は、拡張イベントを使用してログインをキャプチャし、誰が何に接続しているかを正確に把握することです。拡張イベントを追加して、実行中のクエリをキャプチャすることもできます。しかし、これをキャプチャするには、それを設定する必要があります。システムに組み込まれているものは、このタイプの情報を自動的に取り込みません。ただし、キャッシュを調べて、実行されたクエリを確認することはできますが、実行したクエリを確認することはできません。 sys.dm_exec_query_statsを調べると、現在キャッシュにあるクエリに関する属性の集計を確認できます。これは必要な機能を果たしませんが、拡張イベントを設定するまで使用できる追加の調査ツールです。
また、運がよければ、以下の手順を試すことができます。
繰り返しになりますが、このレポートにはログインに関するいくつかの情報が表示されますが、履歴情報は表示されません。現在ログインしているユーザーのみが表示されます。