データベース
 Computer >> コンピューター >  >> プログラミング >> データベース

MSSQLServerでの操作監査の切り捨てと削除

このブログでは、MSSQLサーバー上のテーブルのデータの切り捨てと削除を担当するユーザーを特定し、担当するエンティティを特定する手順について説明します。

例:テーブルが切り捨てられたのはいつですか、データがテーブルから削除されたのはいつですか?テーブルを切り捨ててテーブルからデータを削除したのは誰ですか?

この情報を収集する理由

これは、誰かが故意または偶然にデータを削除したかどうかを確認するためのものであり、個人を追跡して予防措置を講じることができます。この情報を求めるお客様からのリクエストはほとんどありません。データパージ操作の正確な時刻がわかれば、ログバックアップ操作中にstopat句を使用してデータを簡単に復元できます。

問題の概要

次のセクションでは、GitOpsの4つの主要な原則について説明します。

午後5時から午後7時2020年1月5日に、「dump truncate」テーブルが切り捨てられ、「dumpdelete」テーブルのデータが「truncatetest」DBから削除されました。対処する必要があると思われる質問は次のとおりです。

  • 問題が何であるかを理解する必要があります。
  • 「dump_delete」テーブルからデータを削除したのは誰ですか?
  • 「ダンプ削除」テーブルから削除された行はいくつですか?
  • 「dump_truncate」テーブルを切り捨てたのは誰ですか?
  • これらのテーブルはいつ切り捨てられて削除されましたか?
  • サーバーでは、現在のバックアップスケジュールは次のとおりです。
  • 毎週日曜日に、完全バックアップが作成されます。
  • 毎日午後1時、diffバックアップ
  • ログのバックアップは15分ごとに生成されます。

前提条件:

  • DBは完全復旧モードである必要があります。
  • 完全バックアップ、差分バックアップ、およびログバックアップが利用可能である必要があります。

高レベルでのアプローチ:

  1. 削除および切り捨て操作を保持しているログバックアップを特定します。
  2. ログバックアップを使用して、切り捨ておよび削除操作の詳細を特定します。

どのログバックアップが削除および切り捨て操作を保持するかを決定します:

:DBの新しいコピーを作成することにより、これらの手順を実行しました。

  1. 1月2日日曜日の完全バックアップをスタンバイモードで復元します。

  2. スタンバイモードで1月5日の差分バックアップを復元する

  3. スタンバイモードでログバックアップを復元します。各ログの復元後にテーブル数をチェックして、どのログバックアップが切り捨ておよび削除操作ログを保持しているかを確認します。

午後6時からログバックアップを復元したとき、「dump truncate」テーブルは空であり、「dumpdelete」テーブルのエントリがありませんでした。結果として、それは次のことを意味します:

午後5時45分から午後6時の間に、「ダンプの切り捨て」テーブルが切り捨てられ、「ダンプの削除」テーブルのデータが同時に消去されました。

次の復元コマンドを実行する必要があります:

ログバックアップを使用して、切り捨ておよび削除操作の詳細を特定します:

ステップ1:午後5時45分から午後6時の間に発生したすべての切り捨て操作と削除操作のトランザクションIDを収集します。

クエリ:

削除と切り捨ての2つの操作が午後5時50分に実行され、これらの操作がログインRPDevによって実行されたことがわかりました。

ステップ2:トランザクションIDに関連付けられているテーブル名を見つけます。

削除操作に関する情報を取得するには、次の手順に従います。

I)削除操作のオブジェクトIDとパーティションIDを決定します。

この出力から、次の情報を推測できます。説明列とトランザクション名列:削除操作が実行されました

  • 開始時間:削除操作は2022/01/05 17:50:22:493に開始されました
  • Login_Name:RP_DEVが削除操作を実行しました。
  • ロック情報:プレフィックス「HoBt」で始まる各行は、1行の削除、合計7行を表します。
  • データが削除されたテーブルに関連付けられたオブジェクトID。
  • パーティションID:データが削除されたオブジェクトのパーティションID

II)オブジェクトIDとパーティションIDを含むテーブルを見つけます。

クエリ:

これで、「ダンプ削除」のデータがRPDEVユーザーによって午後5時50分にトランザクションID「0000:000016a96」で削除され、合計7行が削除されたと推測できます。

切り捨て操作に関する情報を取得するには、次の手順に従います。

I)Truncate操作のオブジェクトIDとパーティションIDを決定します。

出力:

これで、「ダンプ削除」のデータがRPDEVユーザーによって午後5時50分にトランザクションID「0000:000016a96」で削除され、合計7行が削除されたと推測できます。

切り捨て操作に関する情報を取得するには、次の手順に従います。

I)Truncate操作のオブジェクトIDとパーティションIDを決定します。

クエリ:

出力

切り捨て操作の出力は、削除操作の出力とわずかに異なります。

パーティションID列:正しいパーティションIDが表示されていません。この情報は、説明列にあります。パーティションIDが強調表示されます。パーティションIDは72057594043564032および72057594043629568

ロックの説明: 常にSCH_M_OBJECT行 [ロックの説明]に正しいオブジェクトIDが表示されます。オブジェクトIDは次のとおりです:885578193

オブジェクトIDとパーティションIDを含むテーブルを見つけます

クエリ:

出力

これで、「dumptruncate」からのデータがトランザクションID「0000:000016a95」でRP_DEVユーザーによって午後5時50分に切り捨てられたことを確認できます。

結論

監査がまだ有効になっていない場合にこれが再び発生しないように、データに対して誰が切り捨ておよび削除操作を実行したかを知ることは有用です。削除操作の場合、ビジネスは削除される行数を把握します。正確な回復時間を確保するには、データの回復に非常に役立ちます。ApexSQLLogやApexSQLRecoverなどのサードパーティツールを使用してデータを回復することもできます。これらのツールの知識については、次のリンクを参照してください。

専門家が次世代のデータプラットフォームの旅をご案内します。

コメントや質問をするには、[フィードバック]タブを使用します。私たちと会話を始めることもできます。


  1. OracleDemantraとSPWAを理解してインストールする

    Demantra®および高度な供給計画作業領域(SPWA)は、Oracle®が提供する需要管理およびサプライチェーン管理ツールです。これらの製品は、Oracle E-Business Suite(EBS)およびOracle Advanced PlanningSuite(APS)(Oracle Advanced Supply Chain Planning(ASCP)の一部)と統合して、Demantraの需要管理およびサプライチェーン管理機能を最大限に活用します。 このブログでは、Oracleデータベース管理者(DBA)とアーキテクチャの観点から、Oracle EBSおよびAPSバリューチェーン

  2. Excel テーブルから行と列を挿入または削除する方法

    テーブル エクセルの素晴らしい機能です。テーブルにはデータのグループが含まれており、これらのデータを組み合わせて使用​​し、シングルクリックでテーブルに対して任意の操作を実行できます。テーブルに行や列を挿入または削除する必要がある場合があります。そのため、この記事では、新しい行と列を挿入する方法、または Excel テーブルから既存の行と列を削除する方法について説明します。 この記事を読んでいる間に練習するには、次の演習用ワークブックをダウンロードしてください。 Excel テーブルの作成方法 Excel テーブル 関連するデータの範囲であり、その範囲に対してワンクリックで任意の操作を実